Swagger2 最全注解说明

2024-05-07 00:38
文章标签 说明 注解 swagger2 最全

本文主要是介绍Swagger2 最全注解说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,swagger2 注解整体说明

2,@API: 请求类的说明

3,@ApiOperation: 方法的说明

3.1,@ApiImplicitParams,@ApiImplicitParam: 方法参数的说明

4,@ApiResponses,@ApiResponse: 方法返回值的说明

5,@ApiModel: 用于 JavaBean 上面, 表示一个 JavaBean(如: 响应数据) 的信息

5.1,@ApiModelProperty: 用在 JavaBean 类的属性上面, 说明属性的含义

1,swagger2 注解整体说明

用于 controller 类上:

注解说明
@Api对请求类的说明

用于方法上面 (说明参数的含义):

注解说明
@ApiOperation方法的说明
@ApiImplicitParams、@ApiImplicitParam方法的参数的说明;@ApiImplicitParams 用于指定单个参数的说明

用于方法上面 (返回参数或对象的说明):

注解说明
@ApiResponses、@ApiResponse方法返回值的说明 ;@ApiResponses 用于指定单个参数的说明

对象类:

注解说明
@ApiModel用在 JavaBean 类上,说明 JavaBean 的 用途
@ApiModelProperty用在 JavaBean 类的属性上面,说明此属性的的含议

2,@API: 请求类的说明

@API: 放在 请求的类上, 与 @Controller 并列, 说明类的作用, 如用户模块, 订单类等.

 
  1. tags="说明该类的作用"
  2. value="该参数没什么意义, 所以不需要配置"

示例:

  1. @API(tags="订单模块")
  2. @Controller
  3. public class OrderController {
  4.  
  5. }

@API 其它属性配置:

属性名称备注
valueurl 的路径值
tags如果设置这个值、value 的值会被覆盖
description对 api 资源的描述
basePath       基本路径
position            如果配置多个 Api 想改变显示的顺序位置
produces如, “application/json, application/xml”
consumes 如, “application/json, application/xml”
protocols协议类型,如: http, https, ws, wss.
authorizations高级特性认证时配置
hidden配置为 true ,将在文档中隐藏

3,@ApiOperation: 方法的说明

  1. @ApiOperation:"用在请求的方法上, 说明方法的作用"
  2. value="说明方法的作用"
  3. notes="方法的备注说明"

3.1,@ApiImplicitParams,@ApiImplicitParam: 方法参数的说明

@ApiImplicitParams: 用在请求的方法上, 包含一组参数说明

@ApiImplicitParam: 对单个参数的说明

name: 参数名

value: 参数的汉字说明, 解释

required: 参数是否必须传

paramType: 参数放在哪个地方

. header --> 请求参数的获取:@RequestHeader

. query --> 请求参数的获取:@RequestParam

. path(用于 restful 接口)--> 请求参数的获取:@PathVariable

  1. . body(请求体)--> @RequestBody User user
  2. . form(普通表单提交)

dataType: 参数类型, 默认 String, 其它值 dataType="Integer"

defaultValue: 参数的默认值

示列:

  1. @API(tags="用户模块")
  2. @Controller
  3. public class UserController {
  4. @ApiOperation(value="用户登录",notes="随边说点啥")
  5. @ApiImplicitParams({
  6. @ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
  7. @ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
  8. @ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer")
  9. })
  10. @PostMapping("/login")
  11. public JsonResult login(@RequestParam String mobile, @RequestParam String password,
  12. @RequestParam Integer age){
  13. //...
  14. return JsonResult.ok(map);
  15. }
  16. }

4,@ApiResponses,@ApiResponse: 方法返回值的说明

@ApiResponses: 方法返回对象的说明

@ApiResponse: 每个参数的说明

code: 数字, 例如 400

message: 信息, 例如 "请求参数没填好"

response: 抛出异常的类

示例:

  1. @API(tags="用户模块")
  2. @Controller
  3. public class UserController {
  4. @ApiOperation("获取用户信息")
  5. @ApiImplicitParams({
  6. @ApiImplicitParam(paramType="query", name="userId", dataType="String", required=true, value="用户 Id")
  7. })
  8. @ApiResponses({
  9. @ApiResponse(code = 400, message = "请求参数没填好"),
  10. @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")
  11. })
  12. @ResponseBody
  13. @RequestMapping("/list")
  14. public JsonResult list(@RequestParam String userId) {
  15. ...
  16. return JsonResult.ok().put("page", pageUtil);
  17. }
  18. }

5,@ApiModel: 用于 JavaBean 上面, 表示一个 JavaBean(如: 响应数据) 的信息

@ApiModel: 用于 JavaBean 的类上面, 表示此 JavaBean 整体的信息

(这种一般用在 post 创建的时候, 使用 @RequestBody 这样的场景,

请求参数无法使用 @ApiImplicitParam 注解进行描述的时候 )

5.1,@ApiModelProperty: 用在 JavaBean 类的属性上面, 说明属性的含义

示例:

  1. @ApiModel(description= "返回响应数据")
  2. public class RestMessage implements Serializable{
  3. @ApiModelProperty(value = "是否成功")
  4. private boolean success=true;
  5. @ApiModelProperty(value = "返回对象")
  6. private Object data;
  7. @ApiModelProperty(value = "错误编号")
  8. private Integer errCode;
  9. @ApiModelProperty(value = "错误信息")
  10. private String message;
  11. /* getter/setter 略 */
  12. }

这篇关于Swagger2 最全注解说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965842

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二