【发布时间】:2018-11-09 03:16:39
【问题描述】:
我们正在使用 Swagger 来记录我们的 REST API。
我们在 Spring REST 控制器中使用各种 swagger 注释
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
@RestController
@RequestMapping("/api/blah")
@Api("Blah")
public class SomeRestController {
@RequestMapping(path = "/some_endpoint", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
@ApiOperation(code = CREATED, value = "Some operation",
response = SomeResponseClass.class)
@ApiResponses(value = {
@ApiResponse(code = CREATED, message = "etc")
})
public DeferredResult<SomeResponseClass> doSomething(
@RequestBody final SomeRequest req) {
// do stuff
}
}
生成文档时,它包括我们使用的所有数据对象及其定义,其中包括所有字段。但是,我们想要配置数据对象中的字段在 Swagger 文档中的显示方式。例如,我们可能希望字段名大小写。
暂时将 Swagger 放在一边我知道我们可以使用 Jackson 注释以我们想要的方式配置字段(使用 @JsonProperty(""))。我们想使用 mixins 将其与数据对象分开,然后使用 jackson ObjectMapper 将 mixins 注册到数据对象。
我的问题是如何用 Swagger 注册这个 ObjectMapper 以便根据注释生成文档?
this thread 的答案看起来很有希望,但我不知道应该在哪里添加答案中提到的转换器工厂类。不知道 Swagger 启动是怎么配置的。有什么想法吗?
【问题讨论】:
标签: java maven jackson swagger mixins