在使用TypeScript和Next.js创建API服务时,以下是一种常见的正确结构方式:
首先,在根目录下创建一个pages/api
文件夹,用于存放API路由和处理程序。
在pages/api
文件夹中创建一个名为example.ts
的文件,作为示例API路由。
// pages/api/example.ts
import { NextApiRequest, NextApiResponse } from 'next';
export default function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method === 'GET') {
// 处理GET请求
res.status(200).json({ message: 'GET request handled' });
} else if (req.method === 'POST') {
// 处理POST请求
res.status(200).json({ message: 'POST request handled' });
} else {
// 处理其他请求方法
res.status(405).json({ message: 'Method Not Allowed' });
}
}
pages/api
文件夹中创建一个名为utils.ts
的文件,用于存放可重复使用的实用函数。// pages/api/utils.ts
export function doSomething() {
// 执行某些操作
}
pages/api
文件夹中创建一个名为types.ts
的文件,用于存放类型定义。// pages/api/types.ts
export interface ExampleData {
message: string;
}
next.config.js
)中启用了API路由。// next.config.js
module.exports = {
// 其他配置...
api: {
bodyParser: false, // 如果需要使用req.body,请将此选项设置为true
},
};
/api/example
路由来测试API。这是一个基本的结构示例,您可以根据自己的需求进行扩展和修改。