Kaynağa Gözat

# fix: OpenAPI错误响应显式声明Response schema,避免回落到成功返回类型

yangyi 2 ay önce
ebeveyn
işleme
1cfac5969b

+ 4 - 1
src/main/java/space/anyi/serve/controller/AuthController.java

@@ -2,6 +2,8 @@ package space.anyi.serve.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -24,7 +26,8 @@ import space.anyi.serve.service.UserService;
 
 @Tag(name = "AuthController",description = "用户认证相关接口")
 @ApiResponses(value = {
-        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400")
+        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400",
+                content = @Content(schema = @Schema(implementation = Response.class)))
 })
 @RestController
 @RequestMapping("auth")

+ 8 - 3
src/main/java/space/anyi/serve/controller/CategoryController.java

@@ -2,6 +2,8 @@ package space.anyi.serve.controller;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -21,9 +23,12 @@ import java.util.List;
 @Tag(name = "CategoryController", description = "题目分类相关接口")
 @ApiResponses(value = {
         @ApiResponse(responseCode = "200", description = "成功", useReturnTypeSchema = true),
-        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400"),
-        @ApiResponse(responseCode = "401", description = "未认证或认证已过期"),
-        @ApiResponse(responseCode = "403", description = "无权限访问")
+        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400",
+                content = @Content(schema = @Schema(implementation = Response.class))),
+        @ApiResponse(responseCode = "401", description = "未认证或认证已过期",
+                content = @Content(schema = @Schema(implementation = Response.class))),
+        @ApiResponse(responseCode = "403", description = "无权限访问",
+                content = @Content(schema = @Schema(implementation = Response.class)))
 })
 @RestController
 @RequestMapping("category")

+ 8 - 3
src/main/java/space/anyi/serve/controller/ContestController.java

@@ -3,6 +3,8 @@ package space.anyi.serve.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -25,9 +27,12 @@ import java.util.List;
 @Tag(name = "ContestController", description = "比赛相关接口")
 @ApiResponses(value = {
         @ApiResponse(responseCode = "200", description = "成功", useReturnTypeSchema = true),
-        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400"),
-        @ApiResponse(responseCode = "401", description = "未认证或认证已过期"),
-        @ApiResponse(responseCode = "403", description = "无权限访问")
+        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400",
+                content = @Content(schema = @Schema(implementation = Response.class))),
+        @ApiResponse(responseCode = "401", description = "未认证或认证已过期",
+                content = @Content(schema = @Schema(implementation = Response.class))),
+        @ApiResponse(responseCode = "403", description = "无权限访问",
+                content = @Content(schema = @Schema(implementation = Response.class)))
 })
 @RestController
 @RequestMapping("contest")

+ 8 - 3
src/main/java/space/anyi/serve/controller/ProblemController.java

@@ -3,6 +3,8 @@ package space.anyi.serve.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -25,9 +27,12 @@ import java.util.List;
 @Tag(name = "ProblemController", description = "题目相关接口")
 @ApiResponses(value = {
         @ApiResponse(responseCode = "200", description = "成功", useReturnTypeSchema = true),
-        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400"),
-        @ApiResponse(responseCode = "401", description = "未认证或认证已过期"),
-        @ApiResponse(responseCode = "403", description = "无权限访问")
+        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400",
+                content = @Content(schema = @Schema(implementation = Response.class))),
+        @ApiResponse(responseCode = "401", description = "未认证或认证已过期",
+                content = @Content(schema = @Schema(implementation = Response.class))),
+        @ApiResponse(responseCode = "403", description = "无权限访问",
+                content = @Content(schema = @Schema(implementation = Response.class)))
 })
 @RestController
 @RequestMapping("problem")

+ 8 - 3
src/main/java/space/anyi/serve/controller/UserController.java

@@ -3,6 +3,8 @@ package space.anyi.serve.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -33,9 +35,12 @@ import java.util.stream.Collectors;
 @Tag(name = "UserController", description = "用户管理")
 @ApiResponses(value = {
         @ApiResponse(responseCode = "200", description = "成功", useReturnTypeSchema = true),
-        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400"),
-        @ApiResponse(responseCode = "401", description = "未认证或认证已过期"),
-        @ApiResponse(responseCode = "403", description = "无权限访问")
+        @ApiResponse(responseCode = "400", description = "参数校验失败,返回体 code=400",
+                content = @Content(schema = @Schema(implementation = Response.class))),
+        @ApiResponse(responseCode = "401", description = "未认证或认证已过期",
+                content = @Content(schema = @Schema(implementation = Response.class))),
+        @ApiResponse(responseCode = "403", description = "无权限访问",
+                content = @Content(schema = @Schema(implementation = Response.class)))
 })
 @RestController
 @RequestMapping("user")