Создать Swagger модель из класса - PullRequest
0 голосов
/ 30 апреля 2018

Я работаю над документированием API, созданного с помощью RESTeasy + Jackson в Java, используя Swagger / OpenAPI (jar - версия swagger - [] - 1.5.18.jar). У меня есть конечная точка, которая может принимать один из нескольких объектов в виде строк. Я нашел способ добавлять модели, используя Swagger's ReaderListener; однако я хочу, чтобы он мог автоматически генерировать Model s, поскольку они все еще находятся в движении. Я обнаружил, что могу использовать ModelConverters для генерации Schema s из класса; однако я не смог найти способ легко сгенерировать Model Property с из этих Schema с. Я нашел этот пример , но он включает в себя добавление большого количества дополнительного кода.

Существуют ли функции, которые будут выполнять это и получать все внутренние Schema с? Или есть лучший способ перейти от Class к Model?

Вот мой текущий код:

@SwaggerDefinition
public class SwaggerModelDefinitionAdder implements ReaderListener {
    @Override
    public void afterScan(Reader arg0, Swagger swagger) {
    }

    @Override
    public void beforeScan(Reader arg0, Swagger swagger) {  
        ModelConverters mc = new ModelConverters();
        Map<String, Schema> class1Schemas = mc.read(Class1.class);
        Map<String, Schema> class2Schemas = mc.read(Class2[].class);

        final Model class1Model = new ModelImpl()
                .name("Class1")
                .type("Class1");
        class1Model.setReference("#/definitions/Class1");

        final Model class2Model = new ModelImpl()
                .name("Class2")
                .type("Class2");
        class2Model.setReference("#/definitions/Class2");

        Map<String, Model> definitions = new HashMap<>();
        definitions.put("Class1", class1Model);
        definitions.put("Class2", class2Model);
        swagger.setDefinitions(definitions);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...