SpringBoot集成Swagger2—swagger2注解使用教程

swagger2 注解说明

@Api:用在请求的类上,表示对类的说明
    tags="说明该类的作用,可以在UI界面上看到的注解"
    value="该参数没什么意义,在UI界面上也看到,所以不需要配置"

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

@ApiImplicitParams:用在请求的方法上,表示一组参数说明
    @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
        name:参数名
        value:参数的汉字说明、解释
        required:参数是否必须传
        paramType:参数放在哪个地方
            · header --> 放在请求头,请求参数的获取:@RequestHeader
            · query --> 用于get请求的参数拼接,请求参数的获取:@RequestParam
            · path(用于restful接口)--> 请求参数的获取:@PathVariable
            · body --> 放在请求体。请求参数的获取:@RequestBody(代码中接收注解)
            · form --> 文件参数   
        dataType:参数类型,默认string。其他可取值:
        	"int", "date", "string", "double", "float", "boolean", "byte", "object", 
        	"long", "date-time", "__file", "biginteger", "bigdecimal", "uuid"    
        defaultValue:参数的默认值

@ApiResponses:用在请求的方法上,表示一组响应
    @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
        code:数字,例如400
        message:信息,例如:"请求失败:失败原因。。。。"
        response:抛出异常的类

@ApiModel:用于响应类上,表示一个返回响应数据的信息
            (这种一般用在post创建的时候,使用@RequestBody这样的场景,
            请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:用在属性上,描述响应类的属性

1.@Api:用在请求的类上,说明该类的作用

import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Api(tags = "测试用Controller")
public class TestContorller {

}

2. @ApiOperation:用在请求的方法上,说明方法的作用

@ApiOperation(value = "测试方法", notes = "", httpMethod = "POST")

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

@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="int")
})

4. @ApiResponses:用于请求的方法上,表示一组响应

@ApiResponses({
    @ApiResponse(code=400,message="请求参数不对"),
    @ApiResponse(code=404,message="找不到资源")
})

5. @ApiModel:用于请求参数是类的情况下

比如

@RequestMapping(value = "/test", method = RequestMethod.POST)
public String getTeacherInfo(@RequestBody TeacherDTO teacher){
}
@ApiModel(description = "导师信息")
@Data
public class TeacherDTO {
    @ApiModelProperty(value = "ID",required=true)
    private String teacherId;
    @ApiModelProperty(value = "姓名",required=true)
    private String teacherName;
    @ApiModelProperty(value = "年龄",required=true)
    private String age;
}

踩坑记录

swagger3配置请求参数为 文件类型的时候 必须在参数前面加 @RequestPart(“file”) 才能在文档里显示出来

	@RequestMapping(value = "/import", method = RequestMethod.POST)
    @ApiOperation(value = "导入文件", httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "file", value = "导入的excel文件", required = true, paramType = "form", dataType = "__file", dataTypeClass = MultipartFile.class)
    })
    public R importExcel(@RequestPart("file") MultipartFile file){
        xqxxService.importExcel(file);
        return R.success();
    }

Swagger2关于@ApiModelProperty注解的坑

项目启动时报WARN:Unable to interpret the implicit parameter…

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值