Мы используем Swagger для документирования нашего REST API.
Мы используем различные аннотации swagger в наших контроллерах Spring REST
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 в сторону, пока я знаю, что мы можем использовать аннотации Джексона для настройки полей так, как мы хотим (используя @JsonProperty("")
).Мы хотим отделить это от объектов данных, используя миксины, а затем зарегистрировать миксины в объекте данных, используя Джексон ObjectMapper.
Мой вопрос заключается в том, как зарегистрировать этот ObjectMapper с помощью Swagger, чтобы документация генерировалась согласно аннотациям?
Ответ от этой цепочки выглядит многообещающе, но я понятия не имею, куда мне добавить класс фабрики преобразователей, упомянутый в ответе.Я не знаю, как настроен запуск Swagger.Есть идеи?