首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

swagger2 注解说明

  • 25-03-02 14:03
  • 3691
  • 13499
blog.csdn.net

文章目录

    • 1、maven依赖
    • 2、swagger2 注解整体说明
      • 2.1、请求类的描述
      • 2.2、方法和方法参数的描述
      • 2.3、方法的响应状态的描述
      • 2.4、对象的描述
    • 3、请求类的描述
      • 3.1、@Api:请求类的说明
      • 3.2、示例:
    • 4、方法和方法参数的描述
      • 4.1、@ApiOperation:方法的说明
      • 4.2、@ApiImplicitParams、@ApiImplicitParam:方法参数的说明
      • 4.3、示列:
    • 5、响应状态的描述
      • 5.1、@ApiResponses、@ApiResponse:响应状态状态的说明
      • 5.2、 示例:
    • 6、对象的描述
      • 6.1、@ApiModel:对象的整体说明
      • 6.2、@ApiModelProperty 对象中每个参数的说明
      • 6.3、示例:
        • 1)入参是对象,即 `@RequestBody` 时, 用于封装请求
        • 2)返回值是对象,即 `@ResponseBody` 时,用于返回值对象的描述。
        • 3) UserLoginVO 和 JsonResult 的使用
      • 6.4、swagger2 中查看:
    • 7、默认的地址

1、maven依赖

<dependency>
	<groupId>io.springfoxgroupId>
	<artifactId>springfox-swagger2artifactId>
	<version>2.9.2version>
dependency>
<dependency>
	<groupId>io.springfoxgroupId>
	<artifactId>springfox-swagger-uiartifactId>
	<version>2.9.2version>
dependency>

<dependency>
	<groupId>com.github.xiaoymingroupId>
	<artifactId>swagger-bootstrap-uiartifactId>
	<version>1.9.6version>
dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

(注:当前2018年,请使用最新的依赖)

2、swagger2 注解整体说明

2.1、请求类的描述

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

2.2、方法和方法参数的描述

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

2.3、方法的响应状态的描述

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

2.4、对象的描述

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

3、请求类的描述

3.1、@Api:请求类的说明

@Api:放在 请求的类上。与 @Controller 并列,说明类的作用,如用户模块,订单类等。
	tags="说明该类的作用"
	value="该参数没什么意义,所以不需要配置"
  • 1
  • 2
  • 3

3.2、示例:

@Api(tags="订单模块")
@Controller
public class OrderController {

}
  • 1
  • 2
  • 3
  • 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 ,将在文档中隐藏

4、方法和方法参数的描述

4.1、@ApiOperation:方法的说明

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

4.2、@ApiImplicitParams、@ApiImplicitParam:方法参数的说明

@ApiImplicitParams:用在请求的方法上,包含一组参数说明
	@ApiImplicitParam:对单个参数的说明	    
	    name:参数名
	    value:参数的说明、描述
	    required:参数是否必须必填
	    paramType:参数放在哪个地方
	        · query --> 请求参数的获取:@RequestParam
	        · header --> 请求参数的获取:@RequestHeader	      
	        · path(用于restful接口)--> 请求参数的获取:@PathVariable
	        · body(请求体)-->  @RequestBody User user
	        · form(普通表单提交)	   
	    dataType:参数类型,默认String,其它值dataType="Integer"	   
	    defaultValue:参数的默认值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4.3、示列:

@Api(tags="用户模块")
@Controller
public class UserController {

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

5、响应状态的描述

5.1、@ApiResponses、@ApiResponse:响应状态状态的说明

@ApiResponses:响应状态的说明。是个数组,可包含多个 @ApiResponse
	@ApiResponse:每个参数的说明
	    code:数字,例如400
	    message:信息,例如"请求参数没填好"
	    response:抛出异常的类
  • 1
  • 2
  • 3
  • 4
  • 5

5.2、 示例:

@Api(tags="用户模块")
@Controller
public class UserController {

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

6、对象的描述

6.1、@ApiModel:对象的整体说明

@ApiModel 经常用于请求的入参对象和 响应返回值对象的描述。

  1. 入参是对象,即 @RequestBody 时, 用于封装请求(包括数据的各种校验)数据;
  2. 返回值是对象,即 @ResponseBody 时,用于返回值对象的描述。
@ApiModel(description = "用户登录")
public class UserLoginVO  implements  Serializable {

}
  • 1
  • 2
  • 3
  • 4

6.2、@ApiModelProperty 对象中每个参数的说明

@ApiModelProperty 用于每个属性上面,说明属生的含义。

@ApiModel
public class UserLoginVO  implements  Serializable {

	@ApiModelProperty(value = "用户名",required=true)	
	private String username;	
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6.3、示例:

1)入参是对象,即 @RequestBody 时, 用于封装请求
@ApiModel(description = "用户登录")
public class UserLoginVO implements Serializable {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "用户名",required=true)	
	private String username;

	@ApiModelProperty(value = "密码",required=true)	
	private String password;
	
	// getter/setter省略
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
2)返回值是对象,即 @ResponseBody 时,用于返回值对象的描述。
@ApiModel(description= "返回响应数据")
public class JsonResult implements Serializable{

	@ApiModelProperty(value = "是否成功",required=true)
	private boolean success=true;	
	
	@ApiModelProperty(value = "错误码")
	private Integer errCode;
	
	@ApiModelProperty(value = "提示信息")
	private String message;
	
    @ApiModelProperty(value = "数据")
	private Object data;
		
	/* getter/setter 略*/
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
3) UserLoginVO 和 JsonResult 的使用

UserLoginVO 作为入参对象。
JsonResult 作为返回值对象。

@Api(tags="用户模块")
@Controller
public class UserController {

	@ApiOperation(value = "用户登录", notes = "")
	@ResponseBody
	@PostMapping(value = "/login")
	public JsonResult login(@RequestBody UserLoginVO userLoginVO) {
		User user=userSerivce.login(userLoginVO);
		return new JsonResult("1","成功");
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

6.4、swagger2 中查看:

在这里插入图片描述

7、默认的地址

http://localhost:5680/zxmall/swagger-ui.html

注:本文转载自blog.csdn.net的猎人在吃肉的文章"https://blog.csdn.net/xiaojin21cen/article/details/78654652"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top