Docker镜像仓库Harbor之Swagger REST API整合配置

目录

  • Swagger介绍
  • 预览Harbor REST API
  • Harbor与Swagger 整合配置
  • FAQ

1、Swagger 介绍

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTFul 风格的 Web 服务。通过 Swagger,我们可以方便的、快速的实现 RESTFul API,同时它也提供UI界面,可以直观的管理和测试各个API接口,它还可以集成到各种开发语言中,大大提高了我们日常工作效率。

2、预览 Harbor REST API 整合配置

我们可以通过 Harbor 提供的 REST API yaml 描述文件,通过在线 Swagger 编辑器,来直观的预览一下 Harbor REST API信息。 1) 下载或直接复制 Harbor 的 swagger.yaml 信息到官网在线 Swagger 编辑器 左侧区域,右侧即可直观看到信息。 2)直接在官网在线 Swagger 编辑器,通过Import URL或Import File,右侧即可直观看到信息。

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

3、Harbor与Swagger整合配置

1)下载 prepare-swagger.shswagger.yaml 到 Harbor 安装目录下,我本地虚拟机安装目录为:/home/wanyang3/harbor

$ cd /home/wanyang3/harbor

地址1:
$ wget https://raw.githubusercontent.com/vmware/harbor/master/docs/prepare-swagger.sh 
$ wget https://raw.githubusercontent.com/vmware/harbor/master/docs/swagger.yaml

地址2:
$ wget https://github.com/vmware/harbor/blob/master/docs/prepare-swagger.sh
$ wget https://github.com/vmware/harbor/blob/master/docs/swagger.yaml

2)编辑 prepare-swagger.sh,修改 SCHEME 和 SERVER_IP 配置

1、修改SCHEME为Harbor配置文件harbor.cfg中设置的ui_url_protocol=http
SCHEME=http

2、修改SERVER_ID为Harbor服务的IP或域名地址,这里我们使用ip
SERVER_ID=10.236.60.101

3)给 prepare-swagger.sh 可执行权限

chmod +x prepare-swagger.sh

4)执行 prepare-swagger.sh 文件,它会下载依赖的 Swagger 包,并将解压缩目录复制到../src/ui/static/vendors目录,并修改index.html相关配置。同时复制swagger.yaml文件复制到../src/ui/static/resources/目录,并修改yaml相关配置。

 ./prepare-swagger.sh

5)编辑 docker-compose.yml 文件,在 ui.volumes 下增加挂载 swagger 的配置

$ vim docker-compose.yml

...
ui:
  ... 
  volumes:
    - ./common/config/ui/app.conf:/etc/ui/app.conf:z
    - ./common/config/ui/private_key.pem:/etc/ui/private_key.pem:z
    - /data/secretkey:/etc/ui/key:z
    - /data/ca_download/:/etc/ui/ca/:z
    ## 下边就是增加的配置 ##
    - ../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:z
    ...

6)重启 Harbor 容器

$ docker-compose down -v
$ docker-compose up -d 

7)访问 Harbor Swagger Web 查看 REST API,访问地址为:http://10.236.60.101/static/vendors/swagger/index.html

注意:在使用 Harbor API 时,是需要 session ID 的,当我们未登录 Harbor 时,直接使用API将得不到任何结果,这里如果我们想使用 Swagger UI 点击访问API返回结果,那么需要在浏览器中先登录 Harbor Web UI,登录后新开一个tab,在这个tab访问 Harbor Swagger Web,将会得到正常的响应结果,因为这时session已经共享,会话认证通过。我们以 http://10.236.60.101/api/users/current 获取当前用户信息接口为例:

4、FQA

上边第三步的第5步,编辑 docker-compose.yml 文件,在 ui.volumes 下增加挂载 swagger 的配置时,

## 下边就是增加的配置 ##
- ../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:z

注意:…swagger-ui-2.1.4/dist 后边的/以及 …vendors/swagger 后边的/得带上,否则dist目录下的文件不能正常挂载到容器swagger目录下,访问时报错404。

这里我们着重介绍了Harbor之Swagger REST API整合配置相关操作,忽略Harbor安装配置,详细可以参考上一篇文章 Docker镜像仓库Harbor之搭建及配置

参考资料

  1. harbor swagger configure
  2. swagger docs

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 14.04上安装对大数据友好的Apache Accumulo NoSQL数据库

Apache Accumulo是一个基于Google BigTable的开源分布式NoSQL数据库。它用于在极大数据集(通常称为大数据)上有效执行CRUD(创建...

590
来自专栏大魏分享(微信公众号:david-share)

干货来袭:OpenShift 3.11.16离线安装手册

本文描述离线安装OCP3.11.16的过程。有订阅的读者,可以自行去access.redhat.com下载。需要进行功能验证的读者,请联系对应的红帽销售进行洽谈...

812
来自专栏Java技术

使用Redis存储Nginx+Tomcat负载均衡集群的Session

环境:Cent OS 7.0(虚拟机环境)、Nginx 1.9.8、Redis 3.2.1

702
来自专栏Hadoop实操

Azkaban的使用及Command作业创建

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproje...

67110
来自专栏实战docker

kubeadm搭建kubernetes集群之三:加入node节点

在上一章《kubeadm搭建kubernetes集群之二:创建master节点》的实战中,我们把kubernetes的master节点搭建好了,本章我们将加入n...

3979
来自专栏北京马哥教育

最全 Linux 磁盘管理基础知识全汇总

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 一、存储设备的挂载和卸载 存储设备的挂载和卸载常用操作命令:fdisk -l、df、du、...

4078
来自专栏云计算教程系列

​如何使用Nginx反向代理配置SSL加密的Jenkins

默认情况下,Jenkins自带内置的Winstone网络服务器,可以通过8080端口进行监听,方便入门。但是,只要您认真使用Jenkins,就应该使用SSL保护...

1674
来自专栏码生

nginx socket wss 协议 相同域名不同端口号

https://blog.csdn.net/pml18710973036/article/details/69053525?locationNum=10&fps...

592
来自专栏云计算教程系列

# 如何在Ubuntu 16.04上配置绑定为缓存或转发DNS服务器 ###

在学习如何配置网站和服务器时,DNS或域名系统通常是一个难以实现的组件。虽然大多数人可能会选择使用其托管公司或其域名注册商提供的DNS服务器,但创建自己的DNS...

1080
来自专栏赵达笔记

CentOS 7.5 + PHP 5.6.36 + Nginx 1.14.0 配置笔记

Nginx 配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 lo...

1998

扫码关注云+社区