npm 包 @okgrow/graphql-scalars 使用教程

阅读时长 6 分钟读完

GraphQL 是一种用于 API 操作的查询语言,它允许客户端定义需要的数据形式,从而使 API 只传递此数据。GraphQL Scalars 是一个内置的 GraphQL 类型系统扩展,提供了许多常见的标量类型的标准和自定义实现。@okgrow/graphql-scalars 则在此基础上进一步提供了更多的自定义标量类型。

本文将介绍如何使用 @okgrow/graphql-scalars 包,并结合示例代码详细介绍其功能和使用方法。

安装

使用 npm 管理工具进行安装:

或者

使用

首先,需要在 GraphQL Scalar 类型定义中引入 @okgrow/graphql-scalars:

然后,定义一个新的标量类型:

然后,在解析函数中使用 @okgrow/graphql-scalars 中提供的解析器:

最后,使用你的新标量类型:

自定义实现

在 @okgrow/graphql-scalars 中,自定义实现一个标量类型非常简单。可以使用自动生成值和解析函数来创建一个新的标量类型。

-- -------------------- ---- -------
------ - ------------- - ---- --------
------ - ---------------- - ---- --------------------------
------ - --------------- - ---- -------------------

------ ----- ------------- - ------------------------------ ------------

------ ----- -------------- - -----------------------------------
  ----- -----------
  -------------- -----------
  -------- -----------
  ---------- ------- -- --- ------------
  ----------- ------- -- --- ------------
  ------------- ----- -- --------- --- ----------- - --- --------------- - ------
---
展开代码

上述代码中,使用 GraphQL ISO Date 库获取了 DateTime 类型,之后通过使用自动生成值和解析函数来创建了一个新的标量类型。可以看到,其中实现了序列化、解析值和解析字面值等函数。

最后,将自定义标量类型进行注册:

示例代码

下面我们通过一个完整的示例来演示 @okgrow/graphql-scalars 的使用。

-- -------------------- ---- -------
------ - -------------------- - ---- ----------------
------ - ----------------- - ---- ----------
------ - ---- - ---- -------------------
------ - --------------------- ---------- ----------------- - ---- --------------------------

----- -------- - -
  ------ -----------
  ------ ------------
  ------ ---
  
  ---- ----- -
    -------- ----- ----
  -
  
  ---- ---- -
    --- ---
    ----- -------
    ------ -------------
    ------ ------------
    ----------- ----
  -  
--

----- --------- - -
  ------------ ------------------
  ------------- ---------------------
  ---- ----------
  ------ -
    ----- ------ ----- -------- ----- -- -
      -- ---- -------------- -- --- ---- -----
    --
  --
  ----- -
    --- -------- ----- -------- ----- -- -
      -- ---- -------------- -- --- -- -----
    --
    ----- -------- ----- -------- ----- -- -
      -- ---- -------------- -- --- ---- -----
    --
    ------ -------- ----- -------- ----- -- -
      -- ---- -------------- -- --- ----- -----
    --
    ------ -------- ----- -------- ----- -- -
      -- ---- -------------- -- --- ----- -----
    --
    ----------- -------- ----- -------- ----- -- -
      -- ---- -------------- -- --- ---------- -----
    --
  -
--

----- ------ - ----------------------
  ---------
  ---------
---

------ ------- -------
展开代码

在上述代码中,我们定义了三个自定义的标量类型:PhoneNumber、EmailAddress 和 URL。同时,我们还定义了 Query 和 User 两个对象类型,并在相应的 resolvers 中

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/109193