Fastify 中如何使用 addSchema 添加 JSON Schema?

推荐答案

在 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,提高代码的可维护性和可读性。

纠错
反馈