swagger常用注解和获取请求参数注解
swagger注解方法作用属性@Api用在请求的类上,表示对类的说明tags="说明该类的作用,可以在UI界面上看到的注解"value="该参数没什么意义,在UI界面上也看到,所以不需要配置"@ApiOperation用在请求的方法上,说明方法的用途、作用value="说明方法的用途、作用"...
swagger
swagger-bootstrap-ui访问地址: http://localhost/doc.html
注解 | 方法作用 | 属性 |
---|---|---|
@Api | 用在请求的类上,表示对类的说明 | tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置" |
@ApiOperation | 用在请求的方法上,说明方法的用途、作用 | value="说明方法的用途、作用" notes="方法的备注说明" |
@ApiImplicitParams | 用在请求的方法上,表示一组参数说明 | name:参数名 value:参数的汉字说明、解释 required:参数是否必须传 paramType:参数放在哪个地方 header --> 请求参数的获取:@RequestHeader query --> 请求参数的获取:@RequestParam path(用于restful接口)--> 请求参数的获取:@PathVariable body(不常用) form(不常用) dataType:参数类型,默认String,其它值dataType="Integer" defaultValue:参数的默认值 |
@ApiImplicitParam | 用在@ApiImplicitParams注解中, 指定一个请求参数的各个方面 | |
@ApiResponses | 用在请求的方法上,表示一组响应 | code:数字,例如400 message:信息,例如"请求参数没填好" response:抛出异常的类 |
@ApiResponse | 用在@ApiResponses中, 一般用于表达一个错误的响应信息 | |
@ApiModel | 用于响应类上,表示返回响应数据的信息 | |
@ApiModelProperty | 用在属性上,描述响应类的属性 |
@ApiImplictParams和@ApiImplictParam可以替换为@ApiParam,
可以结合@RequestParam一起使用
spring接收参数的几种方式
注解 | 描述 |
---|---|
@ModelAttribute | 使用@ModelAttribute这个方法可以直接将参数映射成pojo对象, 我不加@ModelAttribute注解,直接接收pojo对象,同样能够接收到参数 |
@PathVariabl | 是把请求的路径上的指定的分段点映射成指定的参数名称, |
HttpServletRequest | request.getParameter("name") |
@RequestParam | 绑定请求参数 |
@RequestParam 参数讲解:
参数名称 | 作用 |
---|---|
value | 说明 如果不和swagger整合的话。value和name只要一个即可 |
required | 是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错 |
defaultValue | 默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值 |
name | name的别名是value,value的别名是name, |
代码案例
package com.dream.controller;
import com.dream.common.config.BaseController;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;
@RestController
// - 用于实体类上,value=实体类名称,description用于描述实体类 用在模型类上,对模型类做注释;
// - 用于描述控制器Controller,即xx管理
@Api(tags = "测试")
public class TestController extends BaseController {
@ApiOperation(value="说明方法的用途、作用",notes = "测试接口描述方法")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "参数的汉字说明、解释",required=true,defaultValue="1", dataType = "string",paramType = "header"),
@ApiImplicitParam(name = "id", value = "参数的汉字说明、解释",required=true,defaultValue="1", dataType = "string",paramType = "header")
})
@ApiResponses({
@ApiResponse(code=400,message="请求参数没填好"),
@ApiResponse(code=404,message="请求路径没有或页面跳转路径不对")
})
@GetMapping("/test")
public String test(String id,String name) {
return name;
}
@ApiOperation(value="说明方法的用途、作用",notes = "测试接口描述方法")
@GetMapping("/test2")
public String test2(
@RequestParam @ApiParam(required = false, name = "name", value = "姓名") String name,
@RequestParam @ApiParam(required = true, name = "subjectId", value = "姓名") String subjectId
) {
return name+":"+subjectId;
}
@GetMapping("/test3/{name}")
public String test3(
// @PathVariable("name") String name,
@PathVariable @ApiParam(required = false, name = "name", value = "姓名") String name,
@ModelAttribute("TUser") TUser user
) {
return name;
}
}
更多推荐
所有评论(0)