1、Swagger的介绍

1.1 Swagger的工作原理

  1、系统启动,扫描到api工程中的Swagger2Configuration类

  2、在此类中指定了包路径,会找到在此包下及子包下标记有@RestController注解的controller类

  3、根据controller类中的Swagger注解生成接口文档。

1.2 Swagger中常用的注解

  @Api:修饰整个类,描述Controller的作用

  @ApiOperation:描述一个类的一个方法,或者说一个接口

  @ApiParam:单个参数描述

  @ApiModel:用对象来接收参数

  @ApiModelProperty:用对象接收参数时,描述对 象的一个字段

  @ApiResponse:HTTP响应其中1个描述

  @ApiResponses:HTTP响应整体描述

  @ApiIgnore:使用 该注解忽略这个API

  @ApiError :发生错误返回的信息

  @ApiImplicitParam:一个请求参数,这个请求参数可以为空

  @ApiImplicitParams:多个请求参数

  参照: https://www.cnblogs.com/fengli9998/p/7921601.html

2、SpringBoot项目下如何生成Swagger接口文档

2.1引入Swagger依赖

 1 <dependency>
2 <groupId>io.springfox</groupId>
3 <artifactId>springfox-swagger2</artifactId>
4 <version>2.7.0</version>
5 </dependency>
6 <dependency>
7 <groupId>io.springfox</groupId>
8 <artifactId>springfox-swagger-ui</artifactId>
9 <version>2.7.0</version>
10 </dependency>

2.2添加Swagger2Configuration类

 1 @Configuration
2 @EnableSwagger2
3 public class Swagger2Configuration {
4
5 @Bean
6 public Docket createRestApi() {
7 return new Docket(DocumentationType.SWAGGER_2)
8 .apiInfo(apiInfo())
9 .select()
10 .apis(RequestHandlerSelectors.basePackage("......"))
11 .paths(PathSelectors.any())
12 .build();
13 }
14
15 private ApiInfo apiInfo() {
16 return new ApiInfoBuilder()
17 .title("XXX")
18 .description("XXXXXX")
19 // .termsOfServiceUrl("/")
20 .version("1.0")
21 .build();
22 }
23 }

2.3 在类上添加Swagger注解

2.3.1 Controller上注解

 1 @Api(value="测试Controller",tags={"用户操作接口"})
2 @RestController
3 public class TestController {
4
5 @PostMapping("/test")
6 @ApiOperation(value="此接口用于测试Swagger")
7 @ApiImplicitParams(
8 {
9 @ApiImplicitParam(name="page",value = "页码",required=true,paramType="path",dataType="int")
10 ,@ApiImplicitParam(name="size",value = "每页记录数",required=true,paramType="path",dataType="int")
11 })
12 public ResponseData<Object> test(int page,int size, @RequestBody ItemListReq itemListReq) throws IOException, JSONException {
13
14 ResponseData responseData = new ResponseData();
15
16 return responseData;
17 }
18
19 }

2.3.2 实体类上注解

@Data
public class ItemListReq { //页码 从0开始
@ApiModelProperty("页码 从0开始")
int pageNo =0 ; //单页返回的记录数
@ApiModelProperty("单页返回的记录数,默认值10")
int pageSize = 10 ; //标准商品编号
@ApiModelProperty("标准商品编号")
String itemId; //标准商品名称,支持不带特殊字符的模糊匹配
@ApiModelProperty("标准商品名称,支持不带特殊字符的模糊匹配")
String itemName; }

2.3.3 效果(服务地址ip:port/swagger-ui.html)

1.

2.

  

Swagger详解的更多相关文章

  1. Swagger详解(SpringBoot+Swagger集成)(转)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ai_miracle/article/de ...

  2. 【转】Swagger详解(SpringBoot+Swagger集成)

    Swagger-API文档接口引擎Swagger是什么 Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器 ...

  3. springboot2.x基础教程:Swagger详解给你的接口加上文档说明

    相信无论是前端还是后端开发,都或多或少地被接口文档折磨过.前端经常抱怨后端给的接口文档与实际情况不一致.后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新.其实无论是前端调用后端,还是后端调用 ...

  4. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  5. 【docker-compose】使用docker-compose部署运行spring boot+mysql 【处理容器的时区问题】【详解】【福利:使用docker-compose构建 wordpress+mysql】

    ==================================================================================================== ...

  6. SpringBoot系列(十一)拦截器与拦截器链的配置与使用详解,你知道多少?

    往期推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件详解 SpringBoot系列(四)web静 ...

  7. SpringBoot系列(十二)过滤器配置详解

    SpringBoot(十二)过滤器详解 往期精彩推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件 ...

  8. 手把手撸套框架-Victory框架1.1 详解

    目录 上一篇博客 Victory框架1.0 详解  有说道,1.0的使用过程中出现不少缺点,比如菜单不能折叠,权限没有权限组等等. 所以,我还是抽出时间在下班后,回到我的小黑屋里 完成了1.1的升级. ...

  9. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  10. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

随机推荐

  1. CentOS7安装GLPI资产管理系统

    1.安装配置docker-ce此步骤不在此赘述 2.启动配置MySQL容器 mkdir -p /opt/mysql5.7/{data,conf} docker pull mysql:5.7.31 do ...

  2. Python 元组tuple、 列表list、 字典dict、集合set、迭代器、生成器

    一.元组: tuple Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组 tup2 = (111, 22, 33, ...

  3. mybatis 一级、二级缓存机制

    MyBatis 提供了对缓存的支持,分为一级缓存和二级缓存 一级缓存是 SqlSession 级别的缓存.在操作数据库时需要构造 SqlSession 对象,在对象中有一个数据结构(HashMap)用 ...

  4. 实例正常,page页损坏处理

    1.select count(*) from XXXXX_homework; 可以查询 2.check table XXXXX_homework; 有报错,报连接失败. ERROR 2013 (HY0 ...

  5. ID生成器实现方式的优缺点比较以及最优的ID生成器原理剖析

    引用:https://blog.csdn.net/luoyang_java/article/details/90679456 本文的重点主要是ID发号器相关的知识,介绍了雪花算法,以及他的基本原理和实 ...

  6. protobuf遇坑总结

    在一个vs2013解决方案下创建了三个工程文件,在其中一个工程(Foundation)中放有CtrlMessage.pb.h和ControlMessageTags的头文件.编译后出错总共68处. 错误 ...

  7. 图形学的up

    https://space.bilibili.com/512313464 c++ 路线有前者的经历https://mp.weixin.qq.com/s?__biz=Mzg2MDU0ODM3MA==&a ...

  8. Android Studio打开现有的项目,Android自带的类、函数(方法)属性等爆红,含解决方式

    如上图,Android 自带的 setContentView 爆红,XML文件内 android:相关的属性(如android:layout_width) 爆红 原因: 使用Android Studi ...

  9. Truenas Core安装(DOS界面)

    下载ISO安装包 搜索truenas core ,找到网站www.truenascore.com,根据网站导航栏指示,点击menu--software--truenas core--download ...

  10. 【11】python之循环

    Python 中的循环语句有 for 和 while. 1.while 循环 Python 中 while 语句的一般形式: while 判断条件(condition): 执行语句(statement ...