【问题标题】:Programmatically append Swagger operations to generated JSON以编程方式将 Swagger 操作附加到生成的 JSON
【发布时间】:2015-02-21 01:28:48
【问题描述】:

我有一个带有 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。

【问题讨论】:

    标签: swagger


    【解决方案1】:

    从 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

    【讨论】:

    • 我喜欢改变 swagger 对象的选项。我正在像这样配置 Dropwizard / JAX-RS 集成:stackoverflow.com/questions/23301054/… 如何从这些对象中获取 swagger 对象?还是有一些静态的方式来访问它?
    猜你喜欢
    • 2022-12-13
    • 2017-06-21
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    相关资源
    最近更新 更多