在前端开发中,GraphQL 已经变得越来越流行。它是一种现代且高效的 API 构建方式,因此也越来越多的人开始使用它。当我们使用 GraphQL 时,我们必须定义用于查询、变异和订阅的 schema,这需要我们编写大量的代码。因此,我们需要有一个可以帮助我们自动生成 GraphQL schema 的工具。在本文中,我们将介绍一个名为 gql-generator 的 npm 包,它可以帮助我们自动生成与服务器端的 GraphQL schema 一致的客户端 schema。
安装 gql-generator
在使用 gql-generator 之前,我们需要先安装它。使用 npm 命令,我们可以很容易地安装 gql-generator。
npm install -g gql-generator
使用 gql-generator
在安装成功之后,我们可以使用 gql-generator 命令行工具创建一个名为 client.js 的 JavaScript 文件。
gql-generator file client.js
接下来,我们需要添加一些配置选项,用于指定要生成的 schema,以及在哪里生成代码。我们可以使用以下内容替换已创建的 client.js 文件。
-- -------------------- ---- ------- ------ --- ---- -------------- ------ - -------------- - ---- ---------------- ----- ------ - ---- ---- ----- - ------ ------- - -- ---------------------- - --------- ---------------------------------- ----------- ----------------------- ---
在上面的代码中,我们定义了一个简单的 schema,然后使用 generateClient 函数将其转换为客户端 schema。在 generateClient 函数中,我们需要传递两个参数:
- schema:服务器端 GraphQL schema。
- options:选项对象,包括以下属性:
- endpoint:GraphQL API 的入口点 URL。
- targetPath:生成的客户端 schema 文件路径。
我们可以看到,在上面的示例中,我们将生成的代码保存到名为 client.js 的文件中。
示例
如果我们将以下代码保存到名为 server.js 的服务器文件中。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - ----------- - - --------------------------- ----- - ----------- - - ------------------- ----- ------ - ------------- ---- ----- - ------ ------- - --- ----- ---- - - ------ -- -- ------ ------- -- ----- --- - ---------- ------------------- ------------- ------- ------- ---------- ----- --------- ----- ---- ---------------- -- -- ---------------- ------ -- --------------------------
然后我们可以运行以下命令生成客户端 schema 代码。
gql-generator file client.js
在生成代码之后,我们可以从我们的客户端代码中调用 GraphQL API,如下所示。
-- -------------------- ---- ------- ------ --- ---- -------------- ------ ------------ ---- --------------- ----- ------ - --- -------------- ---- -------------------------------- --- ----- ----- - ---- ----- - ----- - -- -------------- ----- -------------- -- --------------------------
在上面的代码中,我们使用 Apollo Client 来将查询发送到我们在服务器文件中定义的 GraphQL API。我们使用已自动生成的客户端代码中的 schema 和查询,以便我们可以轻松地对 GraphQL API 进行访问。
总结
如前所述,GraphQL 提供了一种现代、高效的 API 构建方式。在使用 GraphQL 时,我们必须针对查询、变异和订阅编写大量的代码来定义 schema。这不仅费时费力,而且容易出错。因此,我们需要一个像 gql-generator 这样的工具来自动生成客户端的 GraphQL schema。gql-generator 可以帮助我们自动生成与服务器端的 GraphQL schema 一致的客户端 schema,当我们需要访问 GraphQL API 时,我们可以很方便地使用它。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006733f890c4f727758367c