Я использую API-шлюз для прокси-сервисов REST (на самом деле IBM API Connect, но я думаю, что это не важно).
Несколько бэкэнд-сервисов отвечают HATEOAS, и мы используем библиотеку Spring-HATEOAS.
Но для одного из этих API шлюз меняет конечную точку (контекст и путь), например, если клиент вызывает https://myapigateway.com/prod/clients
, шлюз меняется на https://k8s-cloud/v1/application/clientservice
(это только пример).
При правильном использовании заголовков X-Forwarded-Proto
и X-Forwarded-Host
домен изменяется в _links
, но путь и контекст - это те, что указаны в бэкэнд-сервисе, например:
"_ links": "https://myapigateway.com/v1/application/clientservice"
У меня есть спор, потому что на самом деле я думаю, что это не сработает (если API Connect не изменит ответ с помощью Gateway-Script, что, возможно, является худшей идеей) и что решение состоит в следующем: нет смысла делать это изменение, у шлюза API и бэкэнд-сервиса должны быть одинаковые пути к конечной точке -
Возможно, этот вопрос слишком открыт, но я не нашел ни одного документа / вики/ блог, чтобы подтвердить мое мнение с коллегами.