Serverless REST API на функциях за API-шлюзом
Публикуйте JSON API без монолитного роутера: группируйте эндпоинты, которые меняются вместе, держите аутентификацию на API-шлюзе, настраивайте CORS и лимиты централизованно и версионируйте пути до ломающих изменений схемы.
Обновлено: 2026-06-28
Кратко
Суть ответа
Serverless REST API на функциях за API-шлюзом. Группируйте REST-эндпоинты, которые деплоятся вместе; аутентификацию, CORS и лимиты по возможности держите на API-шлюзе.
Когда подходит и когда нет
- Внутренние API
- Интеграции с партнёрами
- Поверхности B2B с несколькими клиентами
На что обратить внимание
- Десятки крошечных репозиториев и деплой-пайплайнов создают хаос — командам всё равно нужны общие аутентификация, CORS и лимиты для публичных JSON API.
Ситуация: нагрузка и где обычно ломается
Почему монолитный REST-роутер замедляет команду
Связывание несвязанных эндпоинтов в один деплой затягивает разбор инцидентов и замедляет выпуск изменений.
Масштабировать весь бинарник ради одного горячего маршрута — лишняя память, когда всплеск приходится на узкий срез JSON API.
Когда простых рецептов недостаточно
Почему дробление на микросервисы тоже мимо
Десятки крошечных репозиториев и деплой-пайплайнов создают хаос — командам всё равно нужны общие аутентификация, CORS и лимиты для публичных JSON API.
Как Inquir помогает в этом сценарии
Группы маршрутов на функцию
Группируйте REST-эндпоинты, которые деплоятся вместе; аутентификацию, CORS и лимиты по возможности держите на API-шлюзе.
Валидируйте вход на границе хендлера и используйте префиксы путей для версионирования до ломающих изменений JSON-контрактов.
Что вы получаете на платформе
Гигиена REST API на шлюзе
Лимиты запросов
Лимиты на шлюзе защищают общие зависимости от злоупотреблений и вышедших из-под контроля клиентов.
CORS
Настраивайте CORS для браузерных клиентов явно и централизованно — без заголовков в каждом хендлере.
Версионирование
Вводите префиксы путей до того, как отправите ломающие изменения в публичные контракты.
Что сделать дальше, по шагам
Как выставлять REST API из функций Inquir
Карта ресурсов
Моделируйте ресурсы существительными и стандартизируйте единый формат ошибок для всех маршрутов.
Реализовать хендлеры
Валидируйте вход на границе, чтобы плохие запросы падали быстро и с предсказуемой ошибкой.
Нагрузочный тест
Замеряйте параллелизм по каждому маршруту, а не только суммарный RPS.
Пример кода
Хелпер для единого формата JSON-ошибок
Единый формат ошибок упрощает клиентские SDK и партнёрские интеграции.
export function jsonError(status, code, message) { return { statusCode: status, body: JSON.stringify({ error: { code, message } }) }; }
Когда подходит и когда нет
Когда этот сценарий подходит вашей команде
Когда это уместно
- Внутренние API
- Интеграции с партнёрами
- Поверхности B2B с несколькими клиентами
Когда лучше выбрать другое
- Монолит на фреймворке уже работает и команда совсем маленькая
Вопросы и ответы
Вопросы и ответы
Можно ли поднять GraphQL на одной функции?
Да — одна функция может держать схему и резолверы; лимиты, аутентификация и холодные/тёплые старты по-прежнему действуют на уровне шлюза.
Насколько мелко дробить REST-функции?
Группируйте то, что деплоится и падает вместе; отдельная функция на каждый путь взрывает операционный шум — ищите баланс, который команда сможет поддерживать.
Где живут проверка API-ключей и JWT?
По возможности держите аутентификацию на уровне шлюза: хендлеры получают уже проверенный контекст и остаются простыми в тестировании.