前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Swagger3 注解使用(Open API 3)

Swagger3 注解使用(Open API 3)

作者头像
TestOps
发布2022-04-07 15:28:57
发布2022-04-07 15:28:57
5.5K0
举报
文章被收录于专栏:TestOps云层TestOps云层

导语:

作为小白来说进入公司想开展接口测试面临的主要问题都是没有接口文档,到底接口在哪里,有哪些参数,每个参数干什么,一切都要靠自己猜或者抓包分析,对于隐藏的接口参数就无能为力了(没有在前台调用的),那么怎么快速的在不依赖研发的基础上完成接口的说明呢?形成一套规范完整的框架用于生成、描述、调用和可视化RESTful风格的Web服务,这就是swagger的由来。

往期使用教程:

3分钟完成接口文档管理平台-录屏版:

https://www.bilibili.com/video/BV1rt4y1C7iR

3分钟完成接口文档管理平台-录屏版:

https://www.bilibili.com/video/BV13K4y1b7vs

快速构建Yapi平台完成接口测试中心:

https://www.bilibili.com/video/BV18v411i7J5

swagger 3 的使用

Swagger2(基于openApi3)已经在17年停止维护了,取而代之的是 sagger3(基于openApi3),而国内几乎没有 sagger3使用的文档,百度搜出来的都是swagger2的使用,这篇文章将介绍如何在 java 中使用 openApi3(swagger3)。

相关介绍

Open API

OpenApi是业界真正的 api 文档标准,其是由 Swagger 来维护的,并被linux列为api标准,从而成为行业标准。

Swagger

swagger 是一个 api 文档维护组织,后来成为了 Open API 标准的主要定义者,现在最新的版本为17年发布的 Swagger3(Open Api3)。 国内绝大部分人还在用过时的swagger2(17年停止维护并更名为swagger3) swagger2的包名为 io.swagger,而swagger3的包名为 io.swagger.core.v3

SpringFox

SpringFox是 spring 社区维护的一个项目(非官方),帮助使用者将 swagger2 集成到 Spring 中。 常常用于 Spring 中帮助开发者生成文档,并可以轻松的在spring boot中使用。 截至2020年4月,都未支持 OpenAPI3 标准。

SpringDoc

SpringDoc也是 spring 社区维护的一个项目(非官方),帮助使用者将 swagger3 集成到 Spring 中。 也是用来在 Spring 中帮助开发者生成文档,并可以轻松的在spring boot中使用。

该组织下的项目支持swagger页面Oauth2登录(Open API3的内容),相较 SpringFox来说,它的支撑时间更长,无疑是更好的选择。但由于国内发展较慢,在国内不容易看到太多有用的文档,不过可以访问它的官网。它的使用了 swagger3(OpenAPI3),但 swagger3 并未对 swagger2 的注解做兼容,不易迁移,也因此,名气并不如 spring fox。


从 springfox 迁移

依赖变更

pom.xml 里去掉 springfox 或者 swagger 的依赖。添加springdoc-openapi-ui

使用 swagger3 注解代替 swagger2 的

用 swagger 3 的注解(已经在上面引入)代替 swagger 2 的 (注意修改 swagger 3 注解的包路径为io.swagger.v3.oas.annotations.)

对应关系为:

修改Api 分组(当且仅当你之前定义了多个 Docket Bean)

旧:

新:

如果之前只有一个 Docket,则把他删了,用配置文件替代它

其他情况

swagger ui在代理的后面,如 nginx

参见这篇 https://springdoc.org/faq.html#how-can-i-deploy-the-doploy-springdoc-openapi-ui-behind-a-reverse-proxy.

自定义 Swagger UI

https://springdoc.org/faq.html#how-can-i-configure-swagger-ui.

在文档中隐藏某个接口或者 Controller

https://springdoc.org/faq.html#how-can-i-hide-an-operation-or-a-controller-from-documentation-

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TestOps 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相关介绍
    • Open API
    • Swagger
    • SpringFox
    • SpringDoc
  • 从 springfox 迁移
    • 依赖变更
    • swagger ui在代理的后面,如 nginx
    • 自定义 Swagger UI
    • 在文档中隐藏某个接口或者 Controller
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档