从Class创建Swagger模型

时间:2018-04-30 15:12:49

标签: java swagger

我正在使用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);
    }
}

0 个答案:

没有答案