相关推荐recommended
@Schema和@ApiModel等注解的联系
作者:mmseoamin日期:2023-12-21

我在看公司之前的文档,发现了@schema注解,不太了解,所以查询了一些资料,把我的见解记录下:

@Schema和@ApiModel等注解的联系,第1张

开始的时候,没查到太多信息,后来查到了,原来就是用过的@APImodel注解,一个是swagger2常用的注解,一个是swagger3常用的注解。

swagger2常用的5个注解:

最常用的5个注解
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
 
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
 
 
其它若干
@ApiResponse:HTTP响应其中1个描述
 
@ApiResponses:HTTP响应整体描述
 
@ApiClass
 
@ApiError
 
@ApiErrors
 
@ApiParamImplicit
 
@ApiParamsImplicit

用 swagger 3 注释替换 swagger 2 注释

(它已经包含在springdoc-openapi-ui依赖项中)。swagger 3 注释的包是io.swagger.v3.oas.annotations

依赖项:

swagger3只需要一个依赖即可



    io.springfox
    springfox-boot-starter
    3.0.0

swagger2到swagger3的变化规则:

@Api → @Tag

 

@ApiIgnore→@Parameter(hidden = true)或@Operation(hidden = true)或@Hidden

 

@ApiImplicitParam → @Parameter

 

@ApiImplicitParams → @Parameters

 

@ApiModel → @Schema

 

@ApiModelProperty(hidden = true) → @Schema(accessMode = READ_ONLY)

 

@ApiModelProperty → @Schema

 

@ApiOperation(value = "foo", notes = "bar") → @Operation(summary = "foo", description = "bar")

 

@ApiParam → @Parameter

 

@ApiResponse(code = 404, message = "foo") → @ApiResponse(responseCode = "404", description = "foo")

之后我问了GPT4:

 @Schema和@ApiModel等注解的联系,第2张

 今天又学到一个新注解@schema,加油