Я работаю над документированием 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);
}
}