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

Next.js 13中如何获取API路由的路径参数?

正确获取Next.js API动态路由参数的方法

一、正确的文件结构

保持你最初的结构即可:

src/
└── app/
    └── api/
        └── image/
            └── [id]/
                └── route.ts

这个结构对应GET端点 /api/image/[id](实际请求时替换[id]为具体值,比如/api/image/123)。

二、参数获取方法

动态路由参数不能用request.nextUrl.searchParams.get("id"),这个方法是用来获取URL查询参数(比如/api/image?id=123里的id)的。正确的方式是从路由上下文的params对象中提取:

import { NextRequest, NextResponse } from 'next/server';

export async function GET(request: NextRequest, { params }: { params: { id: string } }) {
  const imageId = params.id; // 请求/api/image/123时,imageId就是"123"
  
  return NextResponse.json({ id: imageId });
}

三、常见误区说明

  • 重命名route.ts为[id].ts或者移动文件位置都是没必要的,App Router要求路由文件必须命名为route.ts/route.js。
  • searchParams仅适用于?key=value形式的查询参数,和动态路由参数是完全不同的两种参数类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:33:09