Публикуйте HTTP-эндпоинты и вебхуки на шлюзе: параметры пути, режимы авторизации, лимиты запросов и, при необходимости, собственные домены — всё завершается на ваших serverless-функциях.
Serverless API-шлюз публикует ваши функции как HTTP-эндпоинты. Запросы к /gw/{tenant}/your-path маршрутизируются к вашим функциям.
Как работает маршрутизация API-шлюза
Откройте раздел Gateway в сайдбаре, чтобы настраивать маршруты, методы, авторизацию и шаблоны. API рабочего пространства по умолчанию доступен по адресу /gw/<slug-арендатора>/…, где slug-арендатора — идентификатор вашего рабочего пространства. Именованные HTTP API (у каждого своя метка хоста субдомена) доступны по адресу /gw/<метка>/…, поэтому в одном рабочем пространстве может работать несколько API.
В установках с поддержкой собственных доменов можно привязать имя хоста к именованному HTTP API, чтобы публичный трафик не был обязан идти через префикс /gw/… по умолчанию.
Конфигурация маршрутов API gateway
- Параметры пути —
/users/:idсоответствует/users/42. - Wildcards —
/site/**соответствует любому вложенному пути. - Методы — GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS или ANY (один маршрут может соответствовать любому методу). Запросы OPTIONS обрабатываются автоматически как CORS-preflight, а не направляются в вашу функцию.
- Авторизация — Public, API Key или Bearer Token, настраивается для каждого маршрута.
Формат события
Выберите формат Simple (плоские поля верхнего уровня) или формат, совместимый с AWS API Gateway v2:
// Your Lambda receives an event like (simple gateway format; body is always a string or null): { "httpMethod": "POST", "path": "/api/users", "headers": { "content-type": "application/json" }, "queryStringParameters": { "page": "1" }, "pathParameters": { "id": "123" }, "body": "{\"name\":\"Alice\"}" }
Трансформация ответов
В расширенных настройках маршрута можно задать:
- Response Headers — статические заголовки для каждого ответа.
- Request Template — трансформация события перед отправкой в функцию.
- Response Template — трансформация ответа функции перед отправкой клиенту.
- Rate Limit — максимальное число запросов в минуту, считается для каждого IP клиента отдельно на каждый маршрут (у каждого исходного IP свой счётчик в фиксированном 60-секундном окне); запросы сверх лимита отклоняются с кодом
429.
Валидация запроса
К маршруту можно прикрепить необязательную схему входа для проверки тела запроса. Схема — подмножество JSON Schema (type, required, properties, items, enum, additionalProperties, а также ограничения длины, числа элементов и числовых диапазонов). Если схема задана, не соответствующее ей тело отклоняется с кодом 400 ещё до запуска функции; оставьте схему пустой, чтобы пропустить проверку.
Проверка подписи вебхуков
Проверяйте подписи входящих вебхуков на маршруте без единой строки кода. Выберите режим вебхука и задайте общий секрет; шлюз проверит HMAC сырого тела запроса до вызова функции и отклонит неверную подпись с кодом 403. Поддерживаемые режимы:
- GitHub — заголовок
X-Hub-Signature-256(sha256=…, HMAC). - Stripe — заголовок
Stripe-Signature(t=…,v1=…). - Custom — выбранный вами заголовок с hex HMAC-SHA256 тела.