api docs php ci,swagger和gitlab结合做API文档

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:14   1287   0

使用docker技术,将gitlab和swagger做一个有机的结合,达到的效果为:每次提交代码,都会自动生成swagger API文档。

以下是实现流程步骤:

0818b9ca8b590ca3270a3433284dd417.png

代码和目录结构

docker-compose.yml文件书写

swagger_ui:

image: swaggerapi/swagger-ui:latest

container_name: swagger_ui

ports:

-"8080:8080" volumes:

-./swagger:/usr/share/nginx/html/swaggerswagger_validator:

image: swaggerapi/swagger-validator:latest

container_name: swagger_validator

ports:

-"8088:8080"gitlab_ce:

image: gitlab/gitlab-ce:latest

container_name: gitlab_ce

hostname: gitlab_ce

ports:

-"8090:80" -"8091:443" -"22:22" volumes:

-./gitlab/config:/etc/gitlab -./gitlab/data:/var/opt/gitlab -./gitlab/logs:/var/log/gitlabgitlab_runner:

image: gitlab/gitlab-runner:latest

container_name: gitlab-runner

links:

-gitlab_ce ports:

-"8099:80" volumes:

-./gitlab/gitlab-runner/config:/etc/gitlab-runner -/var/run/docker.sock:/var/run/docker.sock -./swagger:/tmp

目录结构:

0818b9ca8b590ca3270a3433284dd417.png

swagger-php

下载方法:

composer require zircote/swagger-php

使用方法:

使用composer下载后,运行指令:

./vendor/bin/swagger -o 目标路径 代码注释路径

gitlab-ce和gitlab-runner

这俩东西是密切相关的俩东西。

gitlab-ce和gitlab-runner的关系如下图所示:

0818b9ca8b590ca3270a3433284dd417.png

默认情况下,gitlab和gitlab-ci是在一起的。现在只需连接gitlab(或者gitlab-ce)和gitlab-ci就好。

gitlab-ce 和 gitlab-runner 结合

首先按照上图所示的内容,写好docker-compose.yml 文件,建好目录,然后运行:docker-compose up -d

几个容器跑起来后,开始连接gitlab-ce和gitlab-runner两个容器。

gitlab-ce和gitlab-runner连接方式很简单:

网页打开gitlab-ce的地址(此处为:localhost:8090)

0818b9ca8b590ca3270a3433284dd417.png

特别注意地址和token,下一步骤用到

进入到gitlab-runner容器,输入如下指令:

$ gitlab-runner register

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )

## 输入你的gitlab地址(以上的地址)

Please enter the gitlab-ci token for this runner

## gitlab的token(在gitlab的Admin Area中) 或者仓库的token(仓库->设置->Runner),就是上图标注的token

Please enter the gitlab-ci description for this runner

## Runner描述信息

Please enter the gitlab-ci tags for this runner (comma separated):

## Runner的标签 可以指定仓库 只使用固定标签的Runner构建

Please enter the executor: parallels, shell, ssh, virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, kubernetes:

## 这里我们选择shell

Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

gitlab-runner实际上就是代码需要运行的环境,在此,我们只需要安装php7就好。

CI所需要的执行脚本书写

在所要提交的代码中加上.gitlab-ci.yml文件,此文件的作用就是制定CI在运行中的步骤,例如,先执行生成API文档,然后跑unit test,然后跑….等等流程性的东西,在此,我们暂时只需要生成API文档就好。

stages:

-buildswagger:

stage: build

script:

-bash ./swagger.sh -mv swagger.json /tmp/

以上可以说配置基本结束了。需要在gitlab上创建项目并运行起来。

swagger套装组件

swagger组件有不少,ui、validator、editor、code-gen等等,在此只用到swagger-ui和swagger-validator这俩。(想用什么随时加)

修改swagger-ui默认首页

打开swagger-ui的容器,把swagger-ui的默认首页修改一下。(默认是http://petstore.swagger.io/v2/swagger.json,不改也可以)

打开容器中的/usr/share/nginx/html/index.html文件,将如下信息修改:

0818b9ca8b590ca3270a3433284dd417.png

改为生成的swagger文件地址。(在此为:localhost:8080/swagger/swagger.json)

使用swagger-validator验证生成的josn是否正确

这一步,最好是能在CI中做,如果验证不正确CI直接过不了,但是,swagger套装好像只提供了在线手工验证的方式。可以在找找有无其他工具。

使用方法:

http://host:port?url=swagger.json的地址

好了,现在根据swagger-php的文档,写一些注释看一下吧。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP