#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