用途:该技能用于指导基于 Fastify v5+ 与 TypeBox 构建类型安全的 REST API,覆盖参数、查询、请求体和响应校验,并支持从 Schema 自动生成 OpenAPI 文档。不涉及数据库集成(参见 drizzle-orm)。
主要能力:使用 TypeBox(@sinclair/typebox)的 Type.* 构造器定义 schema;通过 @fastify/type-provider-typebox 提供的 TypeBoxTypeProvider 自动推断 request.params、request.query、request.body 类型;为所有状态码定义响应 schema;借助 @fastify/swagger 生成 OpenAPI;使用 operationId 与 tags 组织接口文档;支持插件、请求生命周期钩子(onRequest、onResponse、onError)以及 inject() 黑盒测试。
使用方式:创建实例时调用 fastify.withTypeProvider<TypeBoxTypeProvider>();在路由 schema 中声明 params、response 等;用 fastify-plugin 编写可复用插件;通过 @fastify/autoload 自动加载插件与路由;常见插件包括限流、CORS、错误处理与优雅关闭。
适用场景:基于 TypeScript v5+ strict 模式开发 Fastify REST API,需要类型安全校验和自动 OpenAPI 输出的项目。
限制:要求 Fastify v5+ 与 TypeScript v5+ strict 模式;应避免手写类型断言、省略响应 schema 或混用其他 schema 库;不涵盖数据库集成。文中涉及的具体代码与命令均为示例,实际配置需结合项目环境。