1. 程式人生 > >docker基礎:私庫系列:再探Harbor:(7) 使用restapi對專案進行增刪改查

docker基礎:私庫系列:再探Harbor:(7) 使用restapi對專案進行增刪改查

在上篇文章中介紹了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] ~]#