我正在使用Swagger / OpenAPI记录使用RESTeasy + Jackson在Java中创建的API(jars是版本swagger - [] - 1.5.18.jar)。我有一个端点,可以作为字符串接受几个对象之一。我找到了一种使用Swagger ReaderListener
添加模型的方法;但是,我希望它能够自动生成Model
,因为它们仍处于不稳定状态。我发现我可以使用ModelConverters
从类中生成Schema
s;但是,我无法找到从这些Model
轻松生成Property
Schema
的方法。我找到了这个example,但它涉及添加大量额外的代码。
是否有任何功能会这样做并获得所有内部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);
}
}