В чем преимущество использования Spring REST Docs по сравнению с Swagger

Spring Недавно были выпущены документы REST, и в документации говорится:

Этот подход освобождает вас от ограничений, налагаемых такими инструментами, как Swagger

Итак, я хотел спросить, когда Spring REST Docs предпочтительнее использовать сравнение с Swagger и какие ограничения он освобождает.

Ответ 1

Я только что увидел презентацию, которая затрагивает ваш вопрос среди других тем:

https://www.youtube.com/watch?v=k5ncCJBarRI&t=26m58s

  • Swagger вообще не поддерживает гипермедиа /it URI в центре

  • Метод Swagger по проверке вашего кода может отставать от вашего кода. Возможно внесение изменений в ваш код, который Swagger не понимает и не будет обрабатывать должным образом, пока Swagger не будет обновлен.

  • Swagger требует много аннотации, и было бы больно включать в аннотации описательный текст, который вы хотите в документе api.

  • Есть только некоторые вещи, которые Swagger не может понять из проверки вашего кода.

В любом случае, это всего лишь пара баллов. Ведущий делает гораздо лучшую работу, обсуждая это, чем я мог.

Ответ 2

Я подумал, что я буду звонить, чтобы дать немного больше контекста, окружающего Swagger, что это такое, а что нет. Я считаю, что это может помочь ответить на ваш вопрос.

Swagger 2.0 принимается множеством больших имен и больших платформ, таких как Microsoft Azure, Paypal, SwaggerHub.com, DynamicApis.com и т.д. Что-то, о чем нужно помнить, заключается в том, что Swagger - это просто спецификация. Это не каркас. Существует много фреймворков, созданных для генерации результата Swagger, который сканирует ваш код, глядя на вашу информацию API, чтобы построить Swagger 2.0 JSON файл, представляющий ваш API. Интерфейс Swagger, который вы видите в ваших API, управляется непосредственно из этого файла JSON Swagger 2.0. fiddler это, чтобы проверить это

Важно отметить, что структура, которая была создана для того, чтобы вы могли "использовать swagger", заключается не в том, как Swagger должен работать (т.е. полностью зависит от реализации сторонней структуры). Если структура, которую вы используете для создания ваших документов Swagger 2.0 и пользовательского интерфейса, не работает для вас, вы должны найти другую структуру, которая генерирует артефакты Swagger и заменяет технологии.

Надеюсь, что это поможет.

Ответ 3

Существует некоторое ограничение с swagger и конкретным стеком spring.

Например: с помощью параметра "param" в вашем сопоставлении запросов вы можете определить несколько методов с одинаковыми URL-адресами и упростить код. Но чванство покажет вам только один метод

Ответ 4

От Spring REST документы:

Цель Spring REST Docs - помочь вам создать документацию для ваших услуг RESTful, которая будет точной и удобочитаемой.

Такой подход, основанный на тестировании, помогает гарантировать точность документации по вашим услугам. Если фрагмент неправильный, тест, который его производит, не будет выполнен.

Преимущества Spring REST docs:

  • Документация написана в тестовом коде, поэтому она не перегружает основной код большим количеством аннотаций и описаний
  • Созданные документы и примеры являются точными, потому что соответствующий тест должен пройти
  • Документы могут предоставить более конкретные и описательные фрагменты
  • Формат подходит для публикации

Недостатки Spring REST docs:

  • Требуется больше работы
  • Документация содержит примеры запросов/ответов, но не предоставляет интерактивных инструментов для изменения и проверки запросов.

Преимущества чванства:

  • Быстрая, автоматическая генерация из кода
  • Интерактивное выполнение запроса - может использоваться для приемочного тестирования
  • Построен на основе спецификации OpenAPI

Недостатки чванства:

  • Для более наглядной документации потребуется много аннотаций
  • Тесты не связаны с документацией, поэтому иногда документация может отклоняться от реальности

Ответ 5

Одним из недостатков Swagger является то, что он не может работать с моделями, имеющими циклические зависимости. Если модель имеет циклическую зависимость, и если включен swagger, то сервер весенней загрузки дает сбой.