Взаимосвязь ресурсов в API Gateway
API-шлюз — это интерфейс взаимодействия с сервисами внутри Yandex Cloud или в интернете.
API-шлюз задается декларативно при помощи спецификации. Спецификация — это файл в формате JSON или YAML с описанием API-шлюза по стандарту OpenAPI 3.0
Доступные расширения:
- Статический ответ
- Обращение по HTTP
- Интеграция с Cloud Functions
- Интеграция с Serverless Containers
- Интеграция с Object Storage
- Интеграция с DataSphere
- Интеграция с Data Streams
- Интеграция с Message Queue
- Интеграция с YDB
- Жадные параметры
- Обобщенный HTTP-метод
- Авторизация с помощью функции Cloud Functions
- Авторизация с помощью JWT
- Поддержка протокола WebSocket
- Валидация данных
- Поддержка CORS
- Параметризация спецификации
- Канареечный релиз
- Ограничение скорости обработки запросов
Использование доменов
Сервис API Gateway интегрирован с системой управления доменами сервиса Certificate Manager.
Вы можете использовать домены с подтвержденными правами при обращении к API. При этом для обеспечения TLS-соединения будет использован привязанный к домену сертификат.
Подробнее о доменах читайте в разделе Интеграция системы управления доменами с сервисами Yandex Cloud.
Авторизация
API Gateway позволяет реализовать стандартные механизмы аутентификации и авторизации
WebSocket
Примечание
Эта функциональность находится на стадии Preview.
Для организации асинхронного двунаправленного взаимодействия между клиентами и API-шлюзом сервис API Gateway поддерживает протокол WebSocket. Клиенты могут отправлять сообщения в API-шлюз, который в свою очередь может независимо отправлять сообщения клиентским приложениям. Такая возможность позволяет клиентам получать данные без необходимости делать HTTP-запрос. Веб-сокеты часто используются в приложениях, требующих обновления данных в режиме реального времени, таких как мессенджеры и онлайн-чаты, многопользовательские игры, платформы для совместной работы, а также приложения финансового рынка и спортивные онлайн-площадки.
Чтобы подключиться к API-шлюзу по протоколу WebSocket, можно использовать служебный домен, выделяемый при создании API-шлюза, или любой другой, добавленный к API-шлюзу.
Доступны интеграции на следующие события:
- открытие соединения;
- отправка сообщений через веб-сокет;
- закрытие соединения.
Для настройки интеграций предусмотрены специальные расширения OpenAPI-спецификации.
Управлять веб-сокетами можно с помощью API, который позволяет получить информацию о соединении, отправить данные на клиентскую сторону и закрыть соединение.
Ограничения, связанные с поддержкой протокола WebSocket, описаны в разделе Квоты и лимиты.
Пример serverless-приложения с использованием протокола WebSocket