我.useDefaultResponseMessages(false)在每种方法中使用 and
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Success", response = Order.class),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
public Order getOrder......
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Success", response = User.class),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
public User getUser......
Run Code Online (Sandbox Code Playgroud)
我可以合并一些重复的注释吗?(默认)
@ApiResponses1.在控制器级别使用。在控制器级别定义通用响应,而不是为每个方法重复它们:
@ApiResponses({
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
@Controller
public class UserOrderController {
@ApiResponse(code = 200, message = "Success", response = Order.class)
@GetMapping("/order")
public Order getOrder() { /*......*/ }
@ApiResponse(code = 200, message = "Success", response = User.class)
@GetMapping("/user")
public User getUser() { /*......*/ }
}
Run Code Online (Sandbox Code Playgroud)
实际上,如果它与方法返回类型匹配,则不需要指定response类型@ApiResponse。因此,在提供的示例中,我们可以为每个控制器定义一次所有响应,以减少重复注释。
通过定义自定义注释在控制器之间共享重复注释:
/**
* A convenient meta-annotation for Swagger API responses.
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@ApiResponses({
@ApiResponse(code = 200, message = "Success"),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Failure")})
@interface DefaultApiResponses {}
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
@DefaultApiResponses
@Controller
public class UserOrderController {
@GetMapping("/order")
public Order getOrder() { /*......*/ }
@GetMapping("/user")
public User getUser() { /*......*/ }
}
Run Code Online (Sandbox Code Playgroud)
本答案中提供的源代码可以在Github上找到。
| 归档时间: |
|
| 查看次数: |
2555 次 |
| 最近记录: |