虽然 server functions 很方便,但它们不是一切。
如果你要:
- 给外部系统开放接口
- 写 webhook
- 做 OAuth callback
- 返回 PDF / 图片 / JSON
- 提供 GraphQL / tRPC 端点
那就该上 API routes。
import type { APIEvent } from "@solidjs/start/server";
export async function GET({ params }: APIEvent) {
const shop = await db.shop.get(params.id);
return shop;
}
export async function POST(event: APIEvent) {
const body = await event.request.json();
await db.shop.create(body);
return new Response("ok");
}它和 UI route 的差异是:
- UI route 默认导出组件
- API route 导出 HTTP method 函数
所以心智上很简单:
UI route = 这条街是给人逛的
API route = 这条街是给系统车辆通行的