Server Routes 与 API

Server Routes 用来定义显式 HTTP 端点,适合公开 API、webhook、健康检查、文件下载等场景。

基本示例

import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/api/health')({
  server: {
    handlers: {
      GET: async () => Response.json({ ok: true }),
    },
  },
})

访问 /api/health 会得到 JSON 响应。

多 HTTP 方法

export const Route = createFileRoute('/api/todos')({
  server: {
    handlers: {
      GET: async () => Response.json(await db.todo.findMany()),
      POST: async ({ request }) => {
        const body = await request.json()
        const todo = await db.todo.create({ data: body })
        return Response.json(todo, { status: 201 })
      },
    },
  },
})

Server Route vs Server Function

场景选择
组件或 loader 内部调用Server Function
第三方 webhookServer Route
公开 REST APIServer Route
类型安全同源 mutationServer Function
sitemap / health check / 文件下载Server Route

错误处理

HTTP endpoint 应返回明确状态码,不要把内部异常直接暴露给客户端。

return Response.json({ error: 'Unauthorized' }, { status: 401 })

下一步