在 Spring 引导中描述 String swagger 响应模式

Describing String swagger response schema in Spring Boot

我已经通过字符串创建了 returns json 的控制器,所以当我使用 @RestController 注释时,它将它转换为正确的 json 并且它工作得很好。

@Api(tags = "Controller")
@RestController
@RequestMapping(value = "/controller", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
public class MyController {

    private final MyService myService;

    @Autowired
    public MyController (MyService MyService ) {
        this.MyService = MyService ;
    }

    @ApiResponses(value = {
        @ApiResponse(code = 400, message = "Bad request", response = ErrorDto.class),
        @ApiResponse(code = 404, message = "Location id not found", response = ErrorDto.class),
        @ApiResponse(code = 500, message = "Internal error")
    })
    @ApiOperation(value = "....", tags = {"Alarms"})
    @PostMapping(value = "")
    public String getValuesByJsonString(@RequestBody Request request) {
       eturn MyService.getMyData(request);
    }

}

由于问题,我在 swagger 中看到响应为“字符串”,我希望看到 json 转换后由 jackson 返回的结构。

是否可以直接指定这个结构???

您可以根据您的响应结构声明 Response class,例如

public class Response {

    private int status;
    private String data;

    // setter getter
}

现在将 @ApiOperation 中的 Response class 称为

@ApiOperation(value = "....", tags = {"Alarms"}, response = Response.class)

现在将生成对应于 Response class 的响应模式,而不是字符串。