docker基礎:私庫系列:再探Harbor:(7) 使用restapi對專案進行增刪改查
阿新 • • 發佈:2018-11-10
在上篇文章中介紹了Harbor的RestApi,這篇具體以專案的增刪改查作為例子來進行說明。
前提假定
假定Harbor運行於本機localhost的32031埠
專案查詢
查詢全部專案
curl -X GET “http://localhost:32031/api/projects” -uadmin:使用者密碼
按專案名稱查詢
查詢專案名稱為library的專案資訊
curl -X GET “http://localhost:32031/api/projects?name=library” -uadmin:使用者密碼
專案增加
新增如下專案名稱為testproject1的專案,型別為public
curl -X POST “http://localhost:32031/api/projects” -H “accept: application/json” -H “Content-Type: application/json” [email protected] -uadmin:使用者密碼
使用者json資訊
[[email protected] ~]# cat testproject1.json
{
"project_name": "testproject1",
"metadata": {
"public": "true"
}
}
[ [email protected] ~]#
建立專案資訊查詢
[[email protected] ~]# curl -X GET "http://localhost:32031/api/projects?name=testproject1" -uadmin:abcd1234
[
{
"project_id": 10,
"owner_id": 1,
"name": "testproject1",
"creation_time": "2018-11-01T12:38:49Z",
"update_time": "2018-11-01T12:38:49Z",
"deleted": 0,
"owner_name": "",
"togglable": true,
"current_user_role_id": 1,
"repo_count": 0,
"metadata": {
"public": "true"
}
}
][ [email protected] ~]#
專案資訊更新
將剛剛建立的專案從public的狀態改為private的,相關的json資訊如下
[[email protected] ~]# cat testproject1.json
{
"project_name": "testproject1",
"metadata": {
"public": "false"
}
}
[[email protected] ~]#
使用put方式更新專案資訊
[[email protected] ~]# curl -X PUT "http://localhost:32031/api/projects/10" -H "accept: application/json" -H "Content-Type: application/json" [email protected] -uadmin:使用者密碼
[[email protected] ~]# echo $?
0
[[email protected] ~]#
因為專案變成了private,所以不指定使用者已經無法查詢出結果,指定admin賬戶後可以看到專案的public已經被設定稱了false
[[email protected] ~]# curl -X GET "http://localhost:32031/api/projects?name=testproject1"
null[[email protected] ~]# curl -X GET "http://localhost:32031/api/projects?name=testproject1" -uadmin:使用者密碼
[
{
"project_id": 10,
"owner_id": 1,
"name": "testproject1",
"creation_time": "2018-11-01T12:38:49Z",
"update_time": "2018-11-01T12:38:49Z",
"deleted": 0,
"owner_name": "",
"togglable": true,
"current_user_role_id": 1,
"repo_count": 0,
"metadata": {
"public": "false"
}
}
][[email protected] ~]#
專案刪除
使用DELETE方法可以對剛建立的專案進行刪除
[[email protected] ~]# curl -X DELETE “http://localhost:32031/api/projects/10” -uadmin:使用者密碼
[[email protected] ~]# echo $?
0
[[email protected] ~]#