为 Spring MVC 生成 Swagger JSON:Springfox 或 Enunciate

Generating Swagger JSON for Spring MVC: Springfox or Enunciate

如果您想为 Spring MVC 项目生成 Swagger UI 文档,基本上您有两个选择:Enunciate 和 SpringFox。

我深入研究了这个主题,但没有找到一个更好的意见。

在我看来,Enunciate 看起来更可取,因为它完全在您的项目之外。无需添加带有配置的特殊 Bean,无需引用带有注释的附加包并用它们注释您的控制器。您只需将 JavaDoc 与自定义标签一起使用即可。

还有其他需要考虑的因素吗?

谢谢。

在使用两者之后,我发现了以下主要区别:

  • Enunciate 在构建时评估注释,Springfox 从应用程序上下文中读取 Spring MVC 配置(构建时与运行时)
  • Enunciate 可以使用 Javadoc 作为文档的一部分(构建与运行时)
  • Springfox 需要一个测试来生成一个可用于进一步代码生成的 swagger 配置文件,这不适合标准的 maven 生命周期。我更喜欢使用 generate-sources / generate-resources 来生成代码/文档。使用 springfox 我坚持在 运行 测试后生成。
  • Springfox with springfox-swagger-ui 是一种非常简单的方法,可以在现有的 Spring Boot / MVC 应用程序之上添加 swagger UI。 OTOH,使用 ReDoc 之类的东西和生成的 Swagger 规范几乎一样简单但更灵活。
  • Springfox 需要在您的应用程序中进行相当多的配置,因此您的应用程序将在运行时依赖于 Springfox。