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已经共享,会话认证经过测试

相关文章
相关标签/搜索