Swagger注解-@ApiResponses 和 @ApiResponse


Swagger注解-@Api
Swagger注解-@ApiOperation
Swagger注解-@ApiImplicitParams 和 @ApiImplicitParam
Swagger注解-@ApiModel 和 @ApiModelProperty
Swagger注解-@ApiResponses 和 @ApiResponse
Swagger注解-@ResponseHeader
Swagger注解-@ApiParam
Swagger注解-@Authorization 和 @AuthorizationScope
Swagger注解-@SwaggerDefinition
Swagger注解-@ExternalDocs
Springboot 集成 Swagger GitHub 地址


@ApiResponses

代码示例

github 代码示例: https://github.com/CoderFreeMan/swagger-demo

使用场景

在 Rest 接口上使用,用作返回值的描述

概述

一个包装器,允许列出多个 ApiResponse,若果你需要描述单个 ApiResponse,你仍然必须使用此注解并将@ApiResponse 包装在一个数组中

属性

属性名称数据类型默认值说明
valueApiResponse[]ApiResponse 列表

@ApiResponse

使用场景

在 Rest 接口或类上和 @ApiResponses 组合使用,组装返回参数说明

概述

描述操作的可能响应,这可用于描述 Rest API 调用中可能的成功和错误 code 码。此注解可以在方法或类级别应用;仅当在方法级别或抛出时未定义相同代码的@ApiResponse注解时才会解析类级别注解异常,如果响应中使用了不同的响应类,则可以通过将响应类于响应码组合使用。注意swagger不允许单个响应代码的多个响应类型。此注解不直接使用,单独使用时swagger不会解析,应该和ApiResponses组合使用。

属性

属性名称数据类型默认值说明
codeint响应的HTTP状态码
messageString伴随响应的人类可读的消息
responseClass<?>Void.class用于描述消息有效负载的可选响应类,对应于响应消息对象的 schema 字段
referenceString“”指定对响应类型的引用,指定的应用可以使本地引用,也可以是远程引用,将按原样使用,并将覆盖任何指定的response()类
responseHeadersResponseHeader[]@ResponseHeader(name = “”, response = Void.class)可能响应的 header 列表
responseContainerString“”声明响应的容器,有效值为List,Set,Map,任何其他值都将被忽略

Swagger注解-@Api
Swagger注解-@ApiOperation
Swagger注解-@ApiImplicitParams 和 @ApiImplicitParam
Swagger注解-@ApiModel 和 @ApiModelProperty
Swagger注解-@ApiResponses 和 @ApiResponse
Swagger注解-@ResponseHeader
Swagger注解-@ApiParam
Swagger注解-@Authorization 和 @AuthorizationScope
Swagger注解-@SwaggerDefinition
Swagger注解-@ExternalDocs
Springboot 集成 Swagger GitHub 地址


### Swagger注解的使用方法与示例 Swagger注解是用于描述API接口参数的重要工具,它能够帮助开发者自动生成API文档[^1]。以下是关于如何使用Swagger注解以及一些常见的示例代码。 #### 1. 引入依赖 在使用Swagger注解之前,需要确保项目中已经引入了相关的依赖。例如,在Maven项目中可以添加以下依赖: ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> ``` #### 2. 配置Swagger 在Spring Boot项目中,可以通过配置类启用Swagger功能。以下是一个简单的配置示例: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.example.controller")) .paths(PathSelectors.any()) .build(); } } ``` #### 3. 使用常见注解 Swagger提供了多种注解来描述API接口及其参数。以下是一些常用的注解及其功能: - **@Api**:用于类上,描述该控制器的功能或模块名称。 ```java @Api(tags = "用户管理模块") ``` - **@ApiOperation**:用于方法上,描述接口的具体操作及说明。 ```java @ApiOperation(value = "获取用户信息", notes = "根据用户ID查询用户详细信息") ``` - **@ApiParam**:用于方法参数上,描述参数的作用及约束条件。 ```java @GetMapping("/user/{id}") public ResponseEntity<User> getUserById(@ApiParam(value = "用户ID", required = true) @PathVariable Long id) { // 方法实现 } ``` - **@ApiResponse**:用于描述接口可能返回的响应结果。 ```java @ApiResponse(code = 404, message = "未找到指定资源") ``` - **@ApiModel** **@ApiModelProperty**:用于描述复杂的对象模型。 ```java @ApiModel(description = "用户实体类") public class User { @ApiModelProperty(value = "用户ID", example = "1") private Long id; @ApiModelProperty(value = "用户名", example = "张三") private String name; } ``` #### 4. 示例代码 以下是一个完整的示例代码,展示了如何使用Swagger注解描述一个简单的API接口: ```java @RestController @RequestMapping("/api/user") @Api(tags = "用户管理模块", description = "提供用户相关操作的API接口") public class UserController { @ApiOperation(value = "创建用户", notes = "根据用户信息创建新用户") @PostMapping("/create") public ResponseEntity<String> createUser(@RequestBody @ApiParam(value = "用户信息") User user) { // 创建用户的逻辑 return ResponseEntity.ok("用户创建成功"); } @ApiOperation(value = "获取用户信息", notes = "根据用户ID查询用户详细信息") @ApiResponses({ @ApiResponse(code = 200, message = "成功返回用户信息"), @ApiResponse(code = 404, message = "未找到指定用户") }) @GetMapping("/get/{id}") public ResponseEntity<User> getUserById(@ApiParam(value = "用户ID", required = true) @PathVariable Long id) { // 查询用户的逻辑 return ResponseEntity.ok(new User()); } } ``` #### 5. 注意事项 在使用Swagger注解时需要注意以下几点: - 确保注解的描述清晰、简洁且符合实际需求[^2]。 - 避免超出Swagger-UI页面可展示的字符限制(通常为120个字符以内)[^3]。 - 对于复杂的数据结构,建议使用`@ApiModel``@ApiModelProperty`进行详细描述。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值