Введение в маршрутизацию API¶
Любой файл, находящийся в директории pages/api
, привязывается к /api/*
и считается конечной точкой (endpoint) API, а не страницей. Код интерфейса маршрутизации остается на сервере и не влияет на размер клиентской сборки.
Следующий пример роута pages/api/user.js
возвращает статус-код 200 и данные в формате JSON:
1 2 3 |
|
Функция handler
принимает два параметра:
req
— экземплярhttp.IncomingMessage
+ несколько встроенных посредниковres
— экземплярhttp.ServerResponse
+ несколько вспомогательных функций
Для обработки различных методов можно использовать req.method
:
1 2 3 4 5 6 7 |
|
Случаи использования¶
В новом проекте весь API может быть построен с помощью интерфейса маршрутизации. Существующий API не требуется обновлять. Другие случаи:
- маскировка URL внешнего сервиса
- использование переменных среды окружения, хранящихся на сервере, для безопасного доступа к внешним сервисам
Особенности¶
- интерфейс маршрутизации не определяет CORS-заголовки по умолчанию. Это делается с помощью посредников (см. ниже)
- интерфейс маршрутизации не может использоваться вместе с
next export
Что касается динамических сегментов в роутах интерфейса маршрутизации, то они подчиняются тем же правилам, что и динамические части роутов страниц.