以编程方式将Swagger操作附加到生成的JSON

时间:2015-02-13 23:39:19

标签: swagger

我有一个带有Swagger注释Java资源类的Dropwizard应用程序。我也在创建programatic REST resources,当然,它不会以生成的Swagger JSON结束。是否可以通过Java Swagger API以编程方式添加操作,以便它们最终生成的JSON以及带注释的资源?

我尝试使用DefaultJaxrsApiReader.appendOperation,但没有效果。

我正在使用com.wordnik:swagger-jaxrs_2.10:1.3.12

修改

我最后只编写了一个Servlet过滤器来更新Swagger JSON响应。让@ fehguy的建议以某种方式运作会很棒。我认为swagger-jaxrs_2.10:1.3.12并不足以支持这些POJO。

1 个答案:

答案 0 :(得分:2)

从swagger-core-1.5.1-M1开始,您可以构建一个只需要Web应用程序返回的swagger POJO。这意味着,您可以以编程方式创建Swagger对象,并将其作为JSON从Web服务提供。

有关如何构建swagger pojo的示例,您可以look at the sourcebuilding one的示例(测试)。

您还可以在应用程序中改变生成的swagger对象。这意味着您可以在运行时动态生成/修改swagger。 swagger-codegen项目中有一个例子,在线代码生成器(swagger-generator)将通过SPI检测代码生成逻辑中启用的语言,并通过选项相应地更新swagger规范:

https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-generator/src/main/java/com/wordnik/swagger/generator/DynamicSwaggerConfig.java