Next.js提供api接口

看react官网在推Next.js,所以简单学习了解一下

DEMO

   使用cna官方脚手架(13+版本)初始化项目以后目录如下:
在这里插入图片描述
可以看出,初始项目只有一个根路由页面page.tsx,想要增加一个纯粹的api route可以在app/目录下创建api/xxx/route.ts。即可访问api/xxx接口

export async function GET() {
  return Response.json({ message: "Hello World" });
}

api接口类型

可以通过定义函数名直接指定接口类型

route.ts

export async function GET(request: Request) {}
 
export async function HEAD(request: Request) {}
 
export async function POST(request: Request) {}
 
export async function PUT(request: Request) {}
 
export async function DELETE(request: Request) {}
 
export async function PATCH(request: Request) {}
 
// If `OPTIONS` is not defined, Next.js will automatically implement `OPTIONS` and set the appropriate Response `Allow` header depending on the other methods defined in the Route Handler.
export async function OPTIONS(request: Request) {}

参数类型

接口函数支持两个入参

import type { NextRequest } from 'next/server'
 
export async function GET(
  request: NextRequest,
  { params }: { params: Promise<{ team: string }> }
) {
  const { team } = await params
}

request

包括cookiesquerybodyrequest对象信息
在这里插入图片描述

context

context: {params: Promise<[x: string]: any>}
params是一个Promise类型的动态路由参数对象

ExampleURLparams
app/dashboard/[team]/route.js/dashboard/1Promise<{ team: ‘1’ }>
app/shop/[tag]/[item]/route.js/shop/1/2Promise<{ tag: ‘1’, item: ‘2’ }>
app/blog/[…slug]/route.js/blog/1/2Promise<{ slug: [‘1’, ‘2’] }>

详细配置参考

  • https://nextjs.org/docs/app/building-your-application/routing/route-handlers
  • https://nextjs.org/docs/app/api-reference/file-conventions/route
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

衣乌安、

嘿嘿,好心人赏俩钱儿~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值