You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Next.js API中配置多路由?账户API路由搭建求助

Next.js API 路由结构解决方案

针对你需要的三个API需求,Next.js(App Router)的标准做法是按资源维度组织路由,结合动态路由处理带ID的请求,具体结构和代码如下:

路由文件结构

app/
└── api/
    └── accounts/
        ├── route.ts          # 处理「获取所有账户」「创建账户」
        └── [id]/
            └── route.ts      # 处理「按ID获取单个账户」

代码实现

1. 处理批量查询与创建(app/api/accounts/route.ts)

import { NextResponse } from 'next/server';

// GET 请求:获取所有账户
export async function GET() {
  // 替换为你的数据库查询逻辑(比如 Prisma、MongoDB 操作)
  const accounts = await fetchAllAccountsFromDB();
  return NextResponse.json(accounts);
}

// POST 请求:创建新账户
export async function POST(request: Request) {
  const accountData = await request.json();
  // 替换为你的数据库插入逻辑
  const newAccount = await createAccountInDB(accountData);
  // 返回201状态码表示资源创建成功
  return NextResponse.json(newAccount, { status: 201 });
}

// 示例模拟函数(实际项目中删除)
async function fetchAllAccountsFromDB() {
  return [{ id: '1', name: '个人账户' }, { id: '2', name: '企业账户' }];
}
async function createAccountInDB(data: any) {
  return { id: Date.now().toString(), ...data };
}

2. 处理单账户查询(app/api/accounts/[id]/route.ts)

import { NextResponse } from 'next/server';

// GET 请求:按ID获取单个账户
export async function GET(
  _request: Request,
  { params }: { params: { id: string } }
) {
  const accountId = params.id;
  // 替换为你的数据库单条查询逻辑
  const account = await fetchAccountByIdFromDB(accountId);

  if (!account) {
    return NextResponse.json({ error: '账户不存在' }, { status: 404 });
  }

  return NextResponse.json(account);
}

// 示例模拟函数(实际项目中删除)
async function fetchAccountByIdFromDB(id: string) {
  return id === '1' ? { id: '1', name: '个人账户' } : null;
}

对应请求端点

  • 获取所有账户:GET /api/accounts
  • 创建新账户:POST /api/accounts(请求体携带账户数据)
  • 按ID获取账户:GET /api/accounts/{id}(替换{id}为实际账户ID)

关键说明

  • Next.js Route Handlers 要求同一个文件中同名HTTP方法只能有一个,因此不能在accounts/route.ts中写两个GET函数,必须用动态路由[id]拆分单资源查询逻辑。
  • 这种结构符合RESTful API设计规范,按资源(accounts)聚合相关操作,更易维护。

内容的提问来源于stack exchange,提问作者Kevin Jaynes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:24:56