如何解决在Spring Boot中描述String swagger响应模式
我创建了一个控制器,该控制器可以按字符串返回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",@ApiResponse(code = 500,message = "Internal error")
})
@ApiOperation(value = "....",tags = {"Alarms"})
@PostMapping(value = "")
public String getValuesByJsonString(@RequestBody Request request) {
eturn MyService.getMyData(request);
}
}
问题是,我大摇大摆地将响应视为“字符串”,并且希望看到转换后由杰克逊返回的json结构。
是否可以直接指定此结构?
解决方法
您可以根据您的响应结构声明Response
类,例如
public class Response {
private int status;
private String data;
// setter getter
}
现在在Response
中将此@ApiOperation
类称为
@ApiOperation(value = "....",tags = {"Alarms"},response = Response.class)
现在将生成与Response
类相对应的响应模式,而不是字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。