Harbor之Swagger REST API


Swagger介紹

Swagger 是一個規范和完整的框架,用於生成、描述、調用和可視化 RESTFul 風格的 Web 服務。通過 Swagger,我們可以方便的、快速的實現 RESTFul API,同時它也提供UI界面,可以直觀的管理和測試各個API接口,它還可以集成到各種開發語言中,大大提高了我們日常工作效率。

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

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

我這里僅做一些簡要配置說明。

Harbor Swagger預覽

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

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

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已經共享,會話認證通過


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM