Создание Swagger JSON для Spring MVC: Springfox или Enunciate

Если вы хотите сгенерировать документацию пользовательского интерфейса Swagger для своего проекта Spring MVC, в основном у вас есть два варианта: Enunciate и SpringFox.

Погрузился в тему но единого мнения какой лучше не нашел.

С моей точки зрения, Enunciate выглядит предпочтительнее, поскольку он совершенно не связан с вашим проектом. Не нужно добавлять специальный Бин с конфигурацией, не нужно ссылаться на дополнительный пакет с аннотациями и аннотировать ими свои контроллеры. Вы просто используете JavaDoc с пользовательскими тегами, и он выполняет свою работу.

Есть ли какие-либо другие соображения, которые следует учитывать?

Спасибо.


person user1921819    schedule 06.04.2017    source источник


Ответы (1)


После использования обоих я обнаружил следующие ключевые различия:

  • Enunciate оценивает аннотации во время сборки, Springfox считывает конфигурацию Spring MVC из контекста приложения (время сборки и время выполнения).
  • Enunciate может использовать Javadocs как часть документации (сборка или среда выполнения).
  • Springfox требует теста для создания файла конфигурации swagger, который можно использовать для дальнейшей генерации кода, который не очень хорошо вписывается в стандартный жизненный цикл maven. Я предпочитаю использовать generate-sources/generate-resources для генерации кода/документов. С Springfox я застрял с генерацией после запуска тестов.
  • Springfox с springfox-swagger-ui — это действительно простой способ прикрутить пользовательский интерфейс swagger поверх вашего существующего приложения Spring Boot/MVC. OTOH, использование чего-то вроде ReDoc вместе со сгенерированной спецификацией Swagger почти так же просто, но более гибко.
  • Springfox требует некоторой настройки вашего приложения, поэтому ваше приложение будет зависеть от Springfox во время выполнения.
person wwerner    schedule 14.11.2017