java - 使用 Swagger 记录现有的 JAX-RS 实现而不对其进行注释

标签 java jax-rs swagger

我想为现有的 JAX-RS 实现生成 Swagger 文档,而无需修改我的代码。我不想引入任何类型的 Swagger 注释来装饰我的类。

这里

https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-JAX-RS-Project-Setup-1.5.X

他们似乎建议在将应用程序配置为使用 Swagger 后,您必须为 swagger 注释代码才能生成 swagger.json。我对吗?是否需要注释?如果不是,我不太明白他们的目的

在不修改代码的情况下记录现有 JAX-RS 应用程序的魔力是否可能实现?

我找到了这个http://www.adam-bien.com/roller/abien/entry/jax_rs_get_swagger_json

这可能是一个解决方案吗?

最佳答案

需要使用 Swagger 注释才能将文档添加到 JAX-RS 实现中。目的是定义你的API操作和参数,它们的含义和目的是什么。

您共享的链接似乎是某种黑客机制。但我不明白任何代码如何能够找出 API 的意图,除非您明确声明它。

如果您需要最大限度地减少 swagger 注释的使用,有两种方法可以做到这一点:

  1. 仅在类级别使用@Api,不要使用方法级别注释。这将渲染一个基本的 swagger.json ,其中包含 GET/POST 等 API 的列表。

  2. 在这里编写一个接口(interface)并使用注释。然后,您的 API 类只需扩展此接口(interface)即可。这将减少对您现有类(class)的影响。

希望这有帮助。

关于java - 使用 Swagger 记录现有的 JAX-RS 实现而不对其进行注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830746/

相关文章:

java - CXF RESTful : No message body reader has been found for request class, 内容类型:application/json

enums - 使用 swagger 2.0(甚至 3.0),是否可以将枚举值标记为已弃用?

java - 如何在生产中关闭 swagger-ui

java - 如何找出用户在 Java JtextField 中输入的文本字段?

java - HikariCP可以显示sql吗?

java - 严重 : MessageBodyWriter not found for media type=application/json, 类型=com.jersey.jaxb.Todo 类,genericType=com.jersey.jaxb.Todo 类

java - jax-rs(rest api)和 websockets 的组合 - 在哪里放置公共(public)初始化

java - 用于 MultivaluedMap Jersey 的 Swagger API?是否可以?

java - 如何将 XML 输入流解析为字符串或对象 (Android studio)

java - Apache 代理隐藏了 HttpServletRequest 对象的远程 IP 地址