推荐答案
在 Fastify 中,可以使用 addSchema
方法来添加 JSON Schema。以下是一个示例代码:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- --- -- -- ---- ------ ------------------- ---- --------------------------------------- ----- --------- ----------- - --- - ----- -------- -- ----- - ----- -------- - -- --------- ------ ------- --- -- ----- ------ --------------------- - ------- - ----- - ----- --------------------------------------- - -- -------- ----- ------ -- - ------------ -------- ----- ------- -------------- --- - --- -------------------- ----- -- - -- ----- - ----------------------- ---------------- - ---
本题详细解读
1. addSchema
方法的作用
addSchema
方法用于在 Fastify 应用中注册 JSON Schema。这些 Schema 可以在路由的 schema
选项中通过 $ref
引用,从而避免重复定义相同的 Schema。
2. JSON Schema 的结构
在示例中,我们定义了一个简单的 JSON Schema,用于描述一个用户对象。该 Schema 包含以下部分:
$id
: 用于唯一标识该 Schema 的 URI。type
: 指定对象的类型,这里为object
。properties
: 定义对象的属性及其类型。required
: 指定哪些属性是必需的。
3. 在路由中使用 Schema
在路由定义中,我们通过 schema
选项引用了之前添加的 JSON Schema。$ref
指向了 addSchema
方法中定义的 $id
,从而实现了 Schema 的复用。
4. 运行效果
当客户端向 /user
发送 POST 请求时,Fastify 会自动根据 Schema 验证请求体。如果请求体不符合 Schema 定义,Fastify 会返回 400 错误;如果符合,则执行相应的处理逻辑。
通过这种方式,Fastify 可以有效地管理和复用 JSON Schema,提高代码的可维护性和可读性。