Swagger框架学习

举报
多米诺的古牌 发表于 2021/06/07 15:32:35 2021/06/07
【摘要】 1.Swagger的定义Swagger 是一个规范和完整的API文档对接框架,通过设置对应的注解,扫描相关的代码来生成描述文件,进而生成与代码和对应代码描述一致并且是可视化 RESTful 风格可以传入不同参数进行调用的接口文档。这种通过代码生成的接口文档,由于是通过对应注解生成和代码保持一致,所以在持续迭代的项目中无论如何修改参数方法,接口文档都会对应作出相同的修改,这使得接口文档变得具有...

1.Swagger的定义

Swagger 是一个规范和完整的API文档对接框架,通过设置对应的注解,扫描相关的代码来生成描述文件,进而生成与代码和对应代码描述一致并且是可视化 RESTful 风格可以传入不同参数进行调用的接口文档。这种通过代码生成的接口文档,由于是通过对应注解生成和代码保持一致,所以在持续迭代的项目中无论如何修改参数方法,接口文档都会对应作出相同的修改,这使得接口文档变得具有实时性并且能够非常高效的传递项目中的接口的实际情况

1.1 Swagger官网也提供了如下几种开源工具,可以集成配置达到所需求的效果:

Swagger Codegen: 可以将描述文件生成html格式和cwiki形式的接口文档,同时也能生成多钟语言的服务端和客户端的代码。

Swagger UI:提供了一个可视化的UI页面展示描述文件,可以直观的对添加swagger注解的接口进行查询,参数调用,查看回调结果等一系列操作。

Swagger Editor: 编辑器的编辑Swagger描述文件的编辑器,提供了在线编辑器和本地部署编辑器两种方式并且可以实时预览描述文件。

Swagger Inspector:用于Swagger文档的在线调用调试,相对于Swagger Ui中的调试,会返回更多的信息并且可以保存你请求的实际请求参数等信息。

Swagger Hub:集成了上面所有项目的各个功能可以以项目和版本为单位,将描述文件上传到Swagger Hub中,相当于一个整合平台。

2.Swagger的使用

2.1 添加Maven依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>XXX</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>XXX</version>
</dependency>
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>XXX</version>
</dependency>
2.2 在Controller中进行使用

在生成swagger文档时,如何和代码保持一致,其实就是通过设置的各种注解来实现的。

@Api注解是对请求类的说明,一般常用参数有:

tags:用于描述这个请求类,并且标识这个请求类的情况,标记可用于按资源或任何其他限定符对操作进行逻辑分组;

value:在未使用tags的情况下将用于为这个类的描述情况标记,如果有tags的设置,则该值将被忽略。

@ApiOperation注解是对需要展示接口的标记,常用参数有;

value:提此供接口的简要描述或者操作说明;

notes:对该接口操作的详细描述说明。

@ApiResponse注解描述该接口的返回值详细情况,常用的参数有:

code:返回成功的成功数字标识;

message:返回成功的描述;

response:描述返回值中的响应类的类型。

@RequestParm注解是描述该接口的请求的参数。

@Api(tags="具体controller描述")
@RestController
public class TestController {

@GetMapping("/test")
@ApiOperation("具体方法的描述")
@ApiResponse(code=0,message="查询成功",response=XXX.class)
public String test(@RequestParam String parm){
... ...
}

}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。