API 路由为使用 Next.js 构建自己的 API 提供了一种简单的解决方案。
pages/api
目录下的任何文件都将作为 API 端点映射到 /api/*
,而不是 page
。
例如,以下 API 路由 pages/api/user.js
处理 json
响应:
export default (req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify({ name: 'John Doe' }))
}
为了使 API 路由能正常工作,你需要导出(export)一个默认函数(即 请求处理器),然后该函数将接收到以下参数:
req
: 一个 http.IncomingMessage 实例,以及一些预建的中间件,可以在 此处 查看res
: 一个 http.ServerResponse 实例,以及一些辅助函数,可以在 [此处]](/docs/api-routes/response-helpers.md) 查看要处理 API 路由的不同 HTTP 方法,可以在请求处理器中使用 req.method
,如下所示:
export default (req, res) => {
if (req.method === 'POST') {
// Process a POST request
} else {
// Handle any other HTTP method
}
}
要用 fetch 函数请求 API 端点,请查看本章开头列出的任何一个示例。
API 路由 未指定 CORS 标头,意味着它们在默认情况下 仅是同源(same-origin)策略 。你可以通过使用 cors 中间件 包装请求处理器来自定义类似行为。
API 路由不会增加客户端打包文件的体积。它们仅是服务器端打的包文件。
接下来,建议学习以下章节: