Кто-нибудь интегрировал Swagger UI с Kraken D? В версии сообщества такая опция недоступна

#swagger #krakend

#swagger #krakend

Вопрос:

Как кракенд.json не того типа, который понимает swagger.Возникает следующая ошибка:

Ошибка: документ должен быть действительным определением OpenAPI 3.0.0

Есть ли какой-либо альтернативный способ создания документации для krakenD

Ответ №1:

Генерация конфигурации KrakenD и документации OpenAPI возможна, но…

  • Вы должны точно определить свой вариант использования:
    • Вы хотите сгенерировать krakend.json конфигурацию из OpenAPI просто как no-op прокси? (см. Пример сценария)
    • Готовы ли вы принять другой (пользовательский) формат? (см. openapi2krakend)
    • Вы хотите сгенерировать документацию OpenAPI из конфигурации KrakenD? Если да, вам нужен только список конечных точек или вы хотите также иметь определенные описания, примеры и типы (!) в одном файле?
  • Вы должны (по крайней мере, попытаться) написать скрипт для самостоятельного создания конфигурации в соответствии с вашими потребностями.
  • Рассмотрите возможность использования KrakenD Studio с плагином OpenAPI generator.

Это может показаться хорошей идеей, но дьявол кроется в деталях, и вам следует проанализировать свои требования, потому что эти два файла имеют совершенно разные цели. Я могу только предложить вам написать такой сценарий преобразования (как я сделал), который должен быть похож на «5 минут работы», а затем перейти в глубину.


Редактировать: Мы выбрали подмножество функций KrakendD и внедрили наш собственный генератор конфигурации (из OAS). Мы используем tags с пользовательским route-to/ префиксом для метаданных, определение может выглядеть следующим образом:

   /coupons/{id}:
    get:
      tags:
        - Coupons
        - route-to/path=/coupons/{id}/detail
        - route-to/backend=GET|http://coupons.content
        - route-to/flags=jwt_validation