用途:在 TypeScript 中构建 REST API,使用 Fastify 作为低开销 Web 框架,并以 TypeBox 提供 schema 校验与类型推导。
主要能力:定义请求与响应 schema(含 $id 便于 OpenAPI 生成与复用);为路由添加 operationId、tags、summary 等文档信息;覆盖 200、400、401、403、404、500 等状态码的响应 schema;用 Type.Composite 按 RFC 7807 ProblemDetail 组织错误响应;用 Static<typeof Schema> 从 schema 推导 TypeScript 类型;区分输入 schema(CreateX)与输出 schema(X);支持路径参数、查询串分页、Type.Union 字符串枚举、format 校验(uuid、email、date-time、uri);通过 app.addSchema 与 Type.Ref 复用 schema;支持 headers 与 Bearer 鉴权、基于角色的权限装饰器与 preHandler;支持模块化路由注册与插件依赖注入。
使用方式:安装 npm i fastify @fastify/type-provider-typebox @sinclair/typebox;用 Fastify({ logger: true }).withTypeProvider() 创建实例;在路由 schema 中声明 body、params、querystring、headers、response;用 app.register(userRoutes, { prefix: '/api/v1' }) 注册模块;用 app.setErrorHandler 统一处理校验错误与领域错误;用 app.decorate 添加权限检查。
适用场景:需要类型安全、schema 驱动校验与文档的 Node.js REST API 服务。
限制:资料未提供性能数据、收费与价格、部署平台、版本兼容范围等事实;插件架构与 TypeID 细节需参考其 references/plugins.md 与 references/typeid.md。