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. v3.x compoistion api 是什么

    在Vue 2.x的基础上要解决的问题: 1. 更低成本的达到逻辑复用(mix in :混入,找不着,命名冲突) 2. 代码组织 3. 类型推导更稳定 目标:使得Vue在大型应用中更有竞争力.

  2. kotlin inline的缺点

    inline关键字修饰的方法,可以在运行时将代码复制到使用处 用来控制打印好用 但有两个缺点: 一.修饰的方法不能太大,行数也不能太多,不然会造成很多重复代码 2.控制打印时,方法的行数最好与使用的行 ...

  3. 如何在 Visual Studio 中自定义 Docker 容器 和 使用 Docker Compose 为 Visual Studio 创建多容器应用

    https://learn.microsoft.com/zh-cn/visualstudio/containers/container-build?WT.mc_id=visualstudio_cont ...

  4. 工程师突击:SAP ABAP实用程序开发攻略.pdf

    工程师突击:SAP ABAP实用程序开发攻略.pdf 有需要的联系 wx :erpworld

  5. 安装SSMS出现许可证被颁发者直接吊销

    出现这种情况,使用以下链接下载rootsupd.exe程序:http://media.kaspersky.com/utilities/CorporateUtilities/rootsupd.zip 运 ...

  6. python 识别登陆验证码图片(完整代码)

    在编写自动化测试用例的时候,每次登录都需要输入验证码,后来想把让python自己识别图片里的验证码,不需要自己手动登陆,所以查了一下识别功能怎么实现,做一下笔记. 首选导入一些用到的库,re.Imag ...

  7. Spring Security 自定义认证逻辑

    Spring Security 自定义认证逻辑 这篇文章的内容基于对Spring Security 认证流程的理解,如果你不了解,可以读一下这篇文章:Spring Security 认证流程 . 分析 ...

  8. 在linux环境中安装node,npm,express

    linux安装node 连接运程命令: 进入usr/local 文件夹 cd /usr/local 1.下载 wget https://nodejs.org/dist/v14.17.6/node-v1 ...

  9. mobx基础

    React 和 MobX 是一对强力组合.React 通过提供机制把应用状态转换为可渲染组件树并对其进行渲染.而MobX提供机制来存储和更新应用状态供 React 使用. 对于应用开发中的常见问题,R ...

  10. select from 多表和inner join的区别

    其实两者是一样的,inner join 只是为了区分left join和right join整出来的,本质还是逐行比较