Swagger с программным REST API (Джерси) - PullRequest
0 голосов
/ 01 февраля 2019

Я довольно долго пытался искать и не мог найти решение, поэтому разместил этот вопрос.

У меня есть веб-проект на Java, в котором мы программно генерируем API-интерфейсы REST (то есть БЕЗ аннотаций на Джерси, таких как @ Path / @ Get)и т. д.) на основе файлов (проприетарных xml), предоставляемых другим инструментом, который является своего рода стандартом в моей организации через Джерси (ResourceConfig, например, https://docs.huihoo.com/jersey/2.13/resource-builder.html), и нам необходимо создать соответствующие документы SWAGGER. Все учебные пособия, которые яобнаружено, что используется декларативный API, включая страницу, например. https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5

Я также изучил Swagger-Inflector, который использует файл swagger.yaml, но в моем случае нам нужно сгенерировать его во время выполнения без ручной работы.

Вот как (аналогичный пример) мы генерируем API REST:

final Resource.Builder resourceBuilder = Resource.builder();
resourceBuilder.path("helloworld");
final ResourceMethod.Builder methodBuilder = resourceBuilder.addMethod("GET");
methodBuilder.produces(MediaType.TEXT_PLAIN_TYPE)
             .handledBy(new Inflector<ContainerRequestContext, String>() {
             @Override
             public String apply(ContainerRequestContext containerRequestContext) {
                    return "Hello World!";
             }
         });
final Resource resource = resourceBuilder.build();
registerResources(resource);

Возможно ли это? Можем ли мы генерировать документы Swagger для программно сгенерированных API REST?

...