容器化配置部署 swagger-ui 项目

前情提要

之前的关于 gRPC 的文章,https://www.cnblogs.com/vpc123/articles/16678034.html ,通过 go & python 混合开发的方式讲解了 grpc 的开发流程经验,因为不想在代码中引入 swagger-ui 的代码,所以把接口文档暂时搁置了,接口本就是给别人查验的,不一定要冗余到项目代码里面,我也十分不喜这种破坏的行为,因此单独通过一篇笔记记录下通过容器挂载的方式展示后端调用接口;此方式比较通用,不是强依赖 grpc 框架的;

项目地址:https://github.com/mateclouder/mate-grpc.git

项目获取

2022-09-11 周日 杭州 微风和煦

小记: 还有 ppt 和视频要整理,我讨厌没有亲人在一起的节日;

# 项目下载
git clone -b develop https://用户名:token值@github.com/仓库地址

# 进入执行目录
cd mate-grpc/examples/go-grpc/swaggerdemo

# 通过下面命令可以生成 RESTful JSON API 的 swagger 说明文件
python -m grpc.tools.protoc -I. --swagger_out=logtostderr=true:. swaggerdemo.proto

备注:执行上述命令后会生成 swaggerdemo.swagger.json 的文件,此文件将会用于容器化接口渲染的描述文件;

swagger-editor

Swagger Editor 是一个开源编辑器,我们可以在这个开源编辑器上设计、描述和记录我们的 API 信息,通过 Swagger Editor 这个开源编辑器进行配置而生成的 API 是符合 RESTFUL API 规范的,并且 Swagger Editor 这款开源编辑器支持 Swagger 2.0 版本和 RESTFUL API 3.0 版本。

docker run -d -p 18080:8080 swaggerapi/swagger-editor

swagger-generator

Swagger-editor主要是使用yaml语法来编写API 文档,编写好的文档可以生成json文件和yaml文件,用于Swagger-generator生成代码,Swagger-UI在线文档生成和测试

docker run -d -e GENERATOR_HOST=http://0.0.0.0 -p 28080:8080 swaggerapi/swagger-generator
docker run -e "JAVA_MEM=1024m" -e "HTTP_PORT=80" -p 80:80 --name swagger-generator-v3 -v /tmp:/jetty_home/lib/shared swaggerapi/swagger-generator-v3

swagger-ui

提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以在该页面中对相关接口进行查阅和做一些简单的接口请求。该项目支持在线导入描述文件和本地部署UI项目

docker run -d -p  38080:8080 -e SWAGGER_JSON=/foo/swaggerdemo.swagger.json -v /home/gowork/src/swaggerdemo:/foo swaggerapi/swagger-ui

总结

swagger-ui 本就是一种接口的表现形式,如果非要嵌入代码里面也不是不可,只是作为一种通用的容器化展现方式反而更加通用一些,根据项目的喜好和目的灵活抉择就可以了;

posted @ 2022-09-11 09:39  流雨声  阅读(535)  评论(0编辑  收藏  举报