Swagger2和openAPI3注解对比

Swagger2和Swagger3对比

swagger2OpenAPI注解位置
@Api@Tag(name = “接口类名”,description = “接口类描述”)Controller 类上
@ApiOperation@Operation(summary =“接口方法描述”)Controller 方法上
@ApiImplicitParams@ParametersController 方法上
@ApiImplicitParam@Parameter(description=“参数描述”)Controller 方法上 @Parameters 里
@ApiParam@Parameter(description=“参数描述”)Controller 方法的参数上
@ApiIgnore@Parameter(hidden = true)@Operation(hidden = true)@Hidden-
@ApiModel@SchemaDTO类上
@ApiModelProperty@SchemaDTO属性上

测试用例:

@Tag(name = "user-controller", description = "用户接口")
@RestController
public class UserController {
   // 忽略这个api
   @ApiIgnore
   @GetMapping("/hello")
   public String hello(){
       return "hello";
   }
  
   @Operation(summary = "用户接口 - 获取用户详情")
   @GetMapping("/user/detail")
   // 这里的@Parameter也可以不加,Swagger会自动识别到这个name参数
   // 但是加@Parameter注解可以增加一些描述等有用的信息
   public User getUser(@Parameter(in = ParameterIn.QUERY, name = "name", description = "用户名") String name){
       User user = new User();
       user.setUsername(name);
       user.setPassword("123");
       return user;
   }
  
   @Operation(summary = "用户接口 - 添加用户")
   @PostMapping("/user/add")
   // 这里的user会被Swagger自动识别
   public User addUser(@RequestBody User user){
       System.out.println("添加用户");
       return user;
   }
}

实体类:

@Schema
@Data
public class User {
  
   @Schema(name = "username", description = "用户名", defaultValue = "javalover", example = "javalover")
   private String username;

   @Schema(name = "password", description = "密码", defaultValue = "123456", example = "123456")
   private String password;

   // 隐藏这个属性,这样接口文档的请求参数中就看不到这个属性
   @Schema(hidden = true)
   private String email;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值