从现有的Java代码生成Swagger文档?

14

有没有一种方法可以从现有的Java代码生成Swagger文档(以YAML格式)?

我目前正在使用YAML文件来生成Java API代码,但我想知道是否可以实现反向过程。也就是说,我能否从现有的Java代码生成一个YAML文件?


你能展示一些例子来说明你想要实现什么吗?你是指JavaDoc生成,设置器/获取器等吗? - Sameer Puri
1个回答

13

从现有代码生成Swagger定义的过程很简单。

添加以下依赖项(我碰巧使用Maven):

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.9.2</version>
</dependency>
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.9.2</version>
</dependency>

这将在您的应用程序中添加一个swagger-ui,可以通过以下方式访问:

http://<host>:<port>/swagger-ui.html

enter image description here

点击API文档(/v2/api-docs)链接,您将获取一个JSON文件,可以使用http://editor.swagger.io(编辑 -> 转换为YAML)轻松地将其转换为YAML文件。


4
有没有办法自动化这个过程?例如,我希望在构建项目时生成这个yaml文件。 - Ram Patra
1
@RamPatra 你看过 https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X 和 https://github.com/kongchen/swagger-maven-plugin 吗? - Germán Faller
@GermanFaller 是的,我在我的项目中使用这两个工具来生成swagger-ui,但是我还没有找到自动生成yaml文件的方法。 - Ram Patra
@RamPatra,请检查您正在使用的springfox-swagger2版本,可能是因为这个原因。此外,请查找最新的文档。 - Vishrant
@RamPatra 问题是要生成yaml文件,不确定为什么会看到swagger.yaml文件。您可能已经在项目结构中有swagger.yaml文件,该文件被返回在响应中,但根据此问题,必须生成swagger.yaml文件。我使用的是2.9.2版本来完成这个任务。 - Vishrant
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接