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

最新文章

  1. ThinkPHP学习(二)
  2. 【转】Memcached安装
  3. 问题:https与http有什么区别啊?
  4. windows2003下安装apache
  5. Fzu oj2194星系碰撞(排序+并查集+路径压缩)
  6. 《深入浅出JavaScript》
  7. sharedevelop iis express
  8. IIS出现Server Error in &#39;/&#39; Application.CS0016的解决办法
  9. MFC基础窗口创建,CWinApp、CFrameWnd
  10. minimun path sum(最小路径和)
  11. Java之mybatis详解
  12. 【转载】Sqlserver数据库备份的几种方式
  13. 通过安全网闸访问MongoDB
  14. Jmeter 常见错误
  15. layui(二)——layer组件常见用法总结
  16. 关于C#中的动态数组ArrayList
  17. 数据结构与算法之PHP用邻接表、邻接矩阵实现图的广度优先遍历(BFS)
  18. 保存对象报错with two open Sessions
  19. web项目文件夹上传
  20. 如何使用Java Enum

热门文章

  1. .NET组件介绍系列
  2. SprngMVC源码学习
  3. 实战框架ABP
  4. SpringMvc配置扫包之后,访问路径404问题解决
  5. HDU 1236 排名(Microsoft_zzt)
  6. Linux中gcc与g++编译器的区别
  7. 堆排序获取TopN
  8. DOM中表格的操作方法总结
  9. 电梯间的谈话:3分钟快速回答CEO的问题
  10. 软件工程_2nd weeks