2017-02-07 4 views
2

Я стараюсь понять, как AWS API Gateway хочет, чтобы я организовал свои API, чтобы управление версиями было простым. Например, допустим, у меня есть простой API для получения слов из словаря, опционально фильтруя результаты по параметру запроса. Я хотел бы иметь v1 это будет доступна по адресу:URI-based Versioning для AWS API Gateway

https://<my-domain>/v1/names?starts-with=<value> 

Однако ближайший я могу получить API шлюза на

https://<my-domain>/names/v1?starts-with=<value> 

... что вполне назад.

У меня на консоли есть «Имена API» с ресурсом «v1», поддерживающим метод GET. У меня также есть настраиваемая настройка домена для сопоставления базового пути «имен» с «Имена API» и этапа «Тест». Базовый путь должен быть уникальным, поэтому, ставя «v1», есть только краткосрочная победа; как только я создаю свой второй API (например, Numbers API), он тоже будет иметь v1, и я не смогу создать второе сопоставление.

Любая помощь очень ценится, поскольку я сейчас не в идеях.

ответ

4

Не создавайте путь версии (/ v1) как ресурс в вашем API. Вместо этого просто вызовите API «Имена V1» и начните создавать ресурсы (/ names). Если вы хотите внести изменения и создать новую версию API, мы рекомендуем создать совершенно новый API под названием «Names V2». Еще раз, просто создайте свои ресурсы без пути к версии.

Чтобы объединить два API вместе, вы можете использовать пользовательские имена доменов. Пользовательское доменное имя в Gateway API включает как полное доменное имя, так и базовый путь. Создайте два пользовательских доменных имен:

  • myapi.com/v1 -> указывает на стадии прод имен V1 API
  • myapi.com/v2 -> указывает на стадии прод имен V2 API

Таким образом, вы можете сохранить исправление ошибок v1 при внесении изменений в v2 и развернуть оба API независимо. Пользовательское доменное имя приведет их вместе и сделает их отображаемыми в одном домене (myapi.com/v2/names).

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

+0

Спасибо, Стефано. Тем не менее, как мне сопоставить v1 из API номеров, если базовый путь должен быть уникальным? То есть, я не думаю, что могу иметь myapi.com/v1/names и myapi.com/v1/numbers, или я что-то не понимаю? – Mark

+1

На данный момент у вас может быть только одна часть пути в пользовательском доменном имени, поэтому вам придется иметь как имена, так и номера ресурсов в том же API. Мы слышали от других клиентов, что они хотели бы включить несколько частей пути в доменное имя, и это определенно то, что мы рассматриваем - спасибо за обратную связь! –

+0

Ницца. На данный момент я буду использовать некоторые идеи резервного копирования. BTW, если вы работаете на Amazon, вы должны увидеть, может ли переполнение стека отмечать вас как проверенного эксперта или что-то в этом роде. Вы знаете, как знаменитости делают в Твиттере? Это сделает ваши ответы более авторитетными. – Mark

Смежные вопросы