Облачная платформаEvolution

Создание Mock API с авторизацией по IAM-токену и тестирование API в API Gateway


С помощью этого руководства вы создадите по одному из путей заглушку API для тестирования проекта. Заглушка отдает указанный ответ на запрос по данному URI вместо ответа от целевого хоста.

Также вы научитесь запрашивать аутентификацию при отправке запросов к шлюзу. Доступ предоставляется только пользователям, у которых в качестве способа авторизации используется IAM-токен.

Вы будете использовать следующие сервисы:

  • Evolution API Gateway для создания API-шлюзов и политик маршрутизации с авторизацией пользователей из сети общего пользования.

  • Postman — инструмент для проектирования, тестирования, документирования и разработки API.

Шаги:

1. Создайте Mock API-шлюз

  1. В личном кабинете перейдите в Разработка → API Gateway.

  2. Откройте раздел Shared.

  3. Нажмите Создать шлюз.

    Отобразится окно создания шлюза.

    По умолчанию шлюзу назначается системный адрес вида <uuid>.apigw.cloud.ru.

  4. Укажите название шлюза.

  5. Выберите для шлюза шаблон Mock-сервер.

  6. Нажмите Продолжить.

  7. Задайте URI для проксирования.

    Пример:

    • Системный адрес: https://bc8296eda9dc4f2ba3a301ac411a32d8.apigw.cloud.ru.

    • URI для проксирования: /service1.

    Для отправки запросов к бэкенду через шлюз будет использоваться адрес https://bc8296eda9dc4f2ba3a301ac411a32d8.apigw.cloud.ru/service1.

  8. Укажите Статус ответа404.

  9. Выберите Тип ответаJSON.

  10. Укажите JSON:

    {
    "userId": 1,
    "id": 1,
    "title": "This is test response for success 404",
    "completed": false
    }
  11. Нажмите Продолжить.

    Автоматически будет создано правило, которое при успешном обращении по URI /service1 будет возвращать статус ответа 404 и JSON:

    {
    "userId": 1,
    "id": 1,
    "title": "This is test response for success 404",
    "completed": false
    }
  12. На этапе Политики, не добавляя политик, нажмите Создать.

Будет создан шлюз с одним активным правилом для всех HTTP-методов и URI /service1. При обращении по адресу шлюза с URI /service1 будет возвращаться заглушка с кодом ответа 404 и JSON-файлом в теле ответа.

2. Протестируйте шлюз в Test API

  1. В личном кабинете перейдите в Разработка → API Gateway.

  2. Откройте раздел Shared.

  3. Откройте API-шлюз, созданный на шаге 2.

  4. Разрешите кросс-доменные запросы для URI, указанного в правиле:

    1. На вкладке Правила найдите правило, созданное на Шаге 2, и в контекстном меню выберите Редактировать.

    2. В открывшемся мастере редактирования правила перейдите на шаг Политики.

    3. Добавьте политику CORS.

    4. В политике оставьте во всех полях значения *.

    5. Нажмите Сохранить.

    Теперь вы сможете протестировать запросы к правилу с помощью Test API.

  5. Выполните запрос GET.

    Сервер вернет ответ, установленный как заглушка при успешном запросе:

    {
    "userId": 1,
    "id": 1,
    "title": "This is test response for success 404",
    "completed": false
    }

3. Добавьте в правило политику авторизации по IAM-токену

  1. Откройте рабочую область API Gateway: Разработка → API Gateway → Shared.

  2. Откройте API-шлюз, созданный на шаге 1.

  3. На вкладке Правила найдите правило, созданное на шаге 1, и в контекстном меню выберите Редактировать.

  4. В мастере редактирования перейдите на шаге Политики нажмите Добавить политику.

  5. Выберите Авторизация.

  6. В окне Авторизация укажите IAM-токен.

  7. Закройте окно Авторизация.

  8. Нажмите Создать.

Шлюз будет обновлен.

При обращении к шлюзу будет запрашиваться авторизация по IAM-токену.

Для вызова используйте метод (например, «GET») и URL созданного API-шлюза, например — https://bc8296eda9dc4f2ba3a301ac411a32d8.apigw.cloud.ru/service1.

4. Получите токен авторизации

  1. В Postman с помощью ключей доступа получите токен авторизации.

5. Протестируйте работу Mock API-шлюза в Postman

В Postman выполните запрос:

curl -X 'GET' \
'https://bc8296eda9dc4f2ba3a301ac411a32d8.apigw.cloud.ru/service1' \
-H 'accept: text/plain' \
--header 'Authorization: Bearer <access_token>' \

Где:

  • bc8296eda9dc4f2ba3a301ac411a32d8.apigw.cloud.ru — пример системного домена вашего API-шлюза;

  • /service1 — пример URI правила;

  • <access_token> — токен авторизации, полученный на предыдущем шаге.

В ответ на запрос придет результат, установленный как заглушка:

../_images/mockapi.webp

Результат

Вы создали новый API-шлюз с Mock-сервером и авторизацией по IAM-токену и протестировали его онлайн.