Harbor之Swagger REST API

Swagger介紹

Swagger 是一個規範和完整的框架,用於生成、描述、調用和可視化 RESTFul 風格的 Web 服務。經過 Swagger,咱們能夠方便的、快速的實現 RESTFul API,同時它也提供UI界面,能夠直觀的管理和測試各個API接口,它還能夠集成到各類開發語言中,大大提升了咱們平常工做效率。git

Harbor也提供這樣一個東東,不過默認沒有安裝。github

詳細的安裝說明,能夠直接參考官方文檔:https://github.com/goharbor/harbor/blob/master/docs/configure_swagger.mddocker

我這裏僅作一些簡要配置說明。瀏覽器

Harbor Swagger預覽

Harbor提供一種經過在線Swagger編輯器預覽Harbor REST API信息的方式。在線編輯器的地址:http://editor.swagger.io/session

不過使用在線Swagger編輯器,須要咱們提供harbor的swagger.yaml文件,下面是這個文件的兩個下載地址:app

URL1:https://raw.githubusercontent.com/vmware/harbor/master/docs/swagger.yaml
URL2:https://github.com/vmware/harbor/blob/master/docs/swagger.yaml

只須要將文件內容直接粘貼到swagger在線編輯器的左邊便可。或者在swagger編輯器頁面經過File --> Importfile導入yaml。框架

整合本地Harbor與Swagger

固然,最好的方式,是直接將Swagger與咱們自建的harbor服務整合,這樣能夠實如今線的接口測試。編輯器

  1. 下載prepare-swagger.sh以及swagger.yaml到你本地的harbor目錄,我這裏就直接放到了/usr/local/harbor中:
wget https://raw.githubusercontent.com/goharbor/harbor/master/docs/prepare-swagger.sh https://raw.githubusercontent.com/goharbor/harbor/master/docs/swagger.yaml
  1. 修改prepre-swagger.sh
# 指定harbor的協議,如https/http
SCHEME=<HARBOR_SERVER_SCHEME>
# 指定harbor的訪問地址,如hub.test.com
SERVER_IP=<HARBOR_SERVER_DOMAIN>
  1. 執行prepare-swagger.sh
chmod +x ./prepare-swagger.sh
./prepare-swagger.sh
  1. 修改harbor的docker-compose.yml文件,以下:
...
ui:
  ... 
  volumes:
    - ./common/config/ui/app.conf:/etc/core/app.conf:z
    - ./common/config/ui/private_key.pem:/etc/core/private_key.pem:z
    - /data/secretkey:/etc/core/key:z
    - /data/ca_download/:/etc/core/ca/:z
    ## add two lines as below ##
    - ../src/ui/static/vendors/swagger-ui-2.1.4/dist/:/harbor/static/vendors/swagger/:z
    - ../src/ui/static/resources/yaml/swagger.yaml:/harbor/static/resources/yaml/swagger.yaml
    ...
  1. 重建harbor容器
docker-compose down -v && docker-compose up -d
  1. 訪問
https://<HARBOR_SERVER>/static/vendors/swagger/index.html

在使用 Harbor API 時,是須要 session ID 的,當咱們未登陸 Harbor 時,直接使用API將得不到任何結果,這裏若是咱們想使用 Swagger UI 點擊訪問API返回結果,那麼須要在瀏覽器中先登陸 Harbor Web UI,登陸後新開一個tab,在這個tab訪問 Harbor Swagger Web,將會獲得正常的響應結果,由於這時session已經共享,會話認證經過測試

相關文章
相關標籤/搜索