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. c++基础: uint8_t uint16_t uint32_t uint64_t size_t ssize_t数据类型

    https://blog.csdn.net/lzx_bupt/article/details/7066577 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个 ...

  2. android kotlin data class的公共参数解决

    kotlin的 data class 不能简略的继承 另一个 data class(要初始化对应父类的值) 尝试使用 sealed class 解决 sealed class CommonParams ...

  3. linux 删除暂时无用内容

    查看磁盘使用情况[root@localhost games]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup- ...

  4. Spring-XML文件与注解

    (一)基于XML的使用 (二)基于注解和XML的混合使用

  5. redis常用命令之Hash

    redis常用命令之Hash Hash常用命令 redis 可以理解为一个全局的大字典,key就是数据的唯一标识符.对应的key不同,value也不同.redis有5个基本的数据类型. 1 redis ...

  6. Python切换中英文输入法

    要实现中英文切换,首先Windows系统必须要有中文语言和英文语言,才能实现输入法(语言)切换. import win32api import win32gui from win32con impor ...

  7. Spring框架常用依赖配置--供使用时直接复制

    Spring框架常用依赖配置--供使用时直接复制 以下仅为本人工作.学习过程中所接触到的内容,不足之处请多包涵. <properties> <org.springframework. ...

  8. 多个git账户ssh密钥配置

    假设两git网站:A.com和B.com,在这两个网站上使用的邮箱和用户名分别为a@mail, userA和b@mail, userB. 清除全局配置 git config --global --li ...

  9. echars简单使用

    引入js <script type="text/javascript" src="js/echarts.js" ></script> 记 ...

  10. Android studio学习第二期

    layout目录下app页面布局文件 activity_main.xml的创建和跳转 activity为一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务 创建步骤 这里选择第二个xml ...