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服務整合,這樣可以實現在線的接口測試。
- 下載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
- 修改
prepre-swagger.sh
# 指定harbor的協議,如https/http
SCHEME=<HARBOR_SERVER_SCHEME>
# 指定harbor的訪問地址,如hub.test.com
SERVER_IP=<HARBOR_SERVER_DOMAIN>
- 執行
prepare-swagger.sh
chmod +x ./prepare-swagger.sh
./prepare-swagger.sh
- 修改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
...
- 重建harbor容器
docker-compose down -v && docker-compose up -d
- 訪問
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已經共享,會話認證通過