postmapping注解_Swagger常用注解

在使用swagger时候如果掌握一些注解的使用,则在开发过程中测试的时候可以事半功倍,尤其在与前端技术进行联调,前端技术在访问swagger中的每个api时,可以很清楚的知道每个url对应的请求类型、参数类型、参数是否非必输、参数个数等等,然后根据这些参数进行前端的快速开发,当然其他技术在测试功能的时候,也可以根据参数提示进行测试,下面介绍一些在开发过程中通常用的注解。

常用注解
1、@Api

说明每个controller层控制类的作用,即每个请求类
属性:tags:描述该类的作用

2、@RestController

它是复合注解,代表的是一个控制器,由于它同时拥有@Controller和@ResponseBody的作用,所在如果要返回JSON数据,则不需要在方法上面加@ResponseBody注解,但是它不能返回jsp、html页面

3、@RequestMapping、@GetMapping、@PostMapping、@PutMapping、@DeleteMapping

定义前端访问的url,可以写在控制类上,也可以写在控制类汇总的方法上面,常用的的写在控制类上面,一般会与它的衍生注解组合使用:@GetMapping 查询请求@PostMapping 添加请求@PutMapping 修改请求@DeleteMapping 删除请求

4、@ApiOperation

作用在控制类中的每个方法上,说明该类的作用
属性:value:说明该类的作用
以上这几个注解在代码中的使用例子如下:

//说明该类的作用
@Api(tags = "学生信息")
//指明该类为控制器
@RestController
//设置请求路径url
@RequestMapping("/student")
public class StudentController {
/**
* 根据id查询学生信息
* @param id 学生id
* @return
*/
@ApiOperation(value = "根据id查询学生信息")
@GetMapping("/query/{id}")
private List<Student> queryById( @ApiParam(value = "学生id", required = true) @PathVariable("id") Long id) {
List<Student> studentList = studentService.queryById(id);
return studentList;
}
}
swagger-ui展示结果如下:

d87153a61b4956416168a61e8671d887.png

5、@ApiParam

@ApiParam作用于请求方法上,定义api参数的注解,属性有:
name:api参数的英文名
value:api参数的描述
required:true表示参数必输,false标识参数非必输,默认为非必输
此注解通常与@RequestParam或者@PathVariable集合使用,因为它的作用只是定义每个参数(因此可以不使用,但是为了方便测试,加上效果更好),如果要获取前端的参数还需要通过@RequestParam或者@PathVariable来获取

6、@PathVariable

获取get请求url路径上的参数,即参数绑定的作用,通俗的说是url中"?"前面绑定的参数
代码示例:

 /**
* 根据id查询学生信息
* @param id 学生id
* @return
*/
@ApiOperation(value = "根据id查询学生信息")
@GetMapping("/query/{id}")
private List<Student> queryById( @ApiParam(name = "id", value = "学生id", required = true) @PathVariable("id") Long id) {
List<Student> studentList = studentService.queryById(id);
return studentList;
}
测试示例:

e1f08b36b0c111637a857bb9188e7098.png


请求url示例:http://127.0.0.1:8080/student/query/1

7、@RequestParam

获取前端传过来的参数,可以是get、post请求,通俗的说是url中"?"后面拼接的每个参数
代码示例:

 /**
* 根据id查询学生信息
* @param id 学生id
* @return
*/
@ApiOperation(value = "根据id查询学生信息")
@GetMapping("/query/student")
private List<Student> queryByIdStu( @ApiParam(name = "byId", value = "学生id", required = false) @RequestParam("id") Long id) {
List<Student> studentList = studentService.queryById(id);
return studentList;
}
测试示例:


请求url示例:http://127.0.0.1:8080/student/query/student?id=1

8、 @ApiImplicitParams、@ApiImplicitParam

定义参数的注解除了@ApiParam之外,这两个注解也可以定义参数
①、@ApiImplicitParams定义一组参数
②、@ApiImplicitParam写在@ApiImplicitParams中,定义每个参数的信息,属性为:
name:参数英文名称
value:参数中文名称
paramType:调用的url 参数形式,“query”为问号"?"后面的拼接参数,“path”为绑定的参数
代码示例:

/**
* 学生信息查询
* @param code 学生编号
* @param name 学会姓名
* @return
*/
@ApiImplicitParams({
@ApiImplicitParam(name = "code", value = "学生编号", paramType = "query", required = true),
@ApiImplicitParam(name = "name", value = "学会姓名", paramType = "query")
})
@ApiOperation(value = "查询学生信息")
@PostMapping("/query/student")
private String queryStudent(@RequestParam String code, @RequestParam String name) {
studentService.queryStudent(code,name);
return "query success";
}
测试示例:

8af9b1be5b047d2e9c943d9b1911dae6.png

270c3c8b860bb1b02c135e2b0376bc78.png

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值