Мой API-шлюз может изменять конечные точки для вызова бэкэндов, поэтому HATEOAS построен неправильно - PullRequest
0 голосов
/ 25 апреля 2019

Я использую 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 и бэкэнд-сервиса должны быть одинаковые пути к конечной точке -

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

...