SuperAPI AI 工具集

tanstack-start-api-routes

编程与开发

查看项目

更新于 10-16 06:50

技能介绍

用途:在 TanStack Start 中创建服务端 API 路由(Server Routes),处理原始 HTTP 请求,适合构建 REST API、Webhook、文件上传下载等返回数据而非 HTML 的端点。若需从组件调用的 RPC 式服务端逻辑,应改用 server functions。

主要能力:在路由文件中通过 createFileRoute 的 server.handlers 定义 GET、POST、PUT、DELETE、OPTIONS 等 HTTP 方法;支持动态参数(如 $id、$userId/posts/$postId)与通配路由($.ts);handler 上下文提供 request、params,可读取请求头、查询参数;支持解析 JSON、表单、文本与二进制请求体;可返回 JSON、纯文本、HTML、重定向、204 无内容及流式响应;支持错误处理、Bearer Token 鉴权与 CORS 头;同一文件可同时处理页面渲染与 API(返回 undefined 时回退到页面渲染)。

使用方式:在 src/routes/api/ 下按文件路径约定创建路由文件,例如 routes/api/hello.ts 对应 GET /api/hello,routes/api/users/$id.ts 对应 /api/users/:id。示例: import { createFileRoute } from '@tanstack/react-router'; export const Route = createFileRoute('/api/hello')({ server: { handlers: { GET: async ({ request }) => { return new Response(JSON.stringify({ message: 'Hello, World!' }), { headers: { 'Content-Type': 'application/json' } }); } } } });

适用场景:REST 接口、Webhook(如 Stripe 签名校验)、文件上传下载、需要自定义 HTTP 状态码与响应头的端点。

限制与建议:服务端路由用于传统 HTTP 端点,组件内调用优先用 createServerFn;应校验输入、处理错误并返回合适状态码、设置正确响应头;建议使用 TypeScript 标注请求与响应类型。具体部署平台与版本要求暂未提供。