npm 包 apollo-codegen 使用教程

GraphQL 是一种新兴的 API 技术,它允许前端开发人员从服务器上取回精确的数据,并且提供了一个良好的传输层。使用 GraphQL 时,服务端会为每个查询提供一定数量的类型信息,这样客户端就可以遵循这些类型信息来更好地结构化数据。但是对于应用程序,这样的类型信息需要转化为适合应用程序内置逻辑的工具。

apollo-codegen 是一个 npm 包,可用于解析服务端自定义的 GraphQL 查询,生成多个将要用到的代码文件,此外还能为 TypeScript 自动添加类型。在这篇文章中我会提供一些简单的示例来演示如何使用它。

安装和初始化

安装:npm install -g apollo-codegen

安装完毕后,你需要在你的项目文件夹中创建配置文件。在这个文件中,你需要设置好 graphql 服务器的完整地址,同时定义好要用到的文件以及文件输出的方式。一个简单的配置文件如下:

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

schema 是你的 GraphQL 服务端网址,需要特别注意这个地址必须指向能够访问到 schema 的 /graphql 端点,否则 apollo-codegen 无法正常使用。

documents 是一个用于提供到保存了所有我们需要生成的代码文件的目录/通配符的数组,以及包含这些文件的任何需要的链。

target 则用来说明生成要用的语言。

output 则是输出文件的存放位置和命名格式。

如何使用

在执行 apollo codegen 命令之前,你需要为其提供一个 GraphQL 查询字符串,这个查询字符串被用来生成客户端需要的代码。在代码生成器的documents属性中可以按照你的意愿指定生成查询代码的文件路径。

通过执行以下命令可以生成文件

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

将会抓取GraphQL Schema,并把结果写入 schema.json 文件中,之后就可以执行代码生成命令:

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

一个示例

在这个示例中,我们将会请求一个还没有写完全的 fake API。在 apollo-codegen 帮助下,我们可以在客户端写出一个仅仅知道 处理器 / query 返回了什么信息的 mock API。

服务端

首先,我们开发一个服务端,它将提供一些假数据和少许约束。

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

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

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

客户端

其次,我们创建一个 Apollo 客户端,来发起请求并处理返回数据。

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

在 stdout 中看到处理后的代码类似于:

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

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

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

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

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

通过 apollo-codegen,可以自动生成最终代码,并且使用跟上面类似的方式访问所有需要的数据。你也可以在代码编写时做一些自动化处理,从而充分利用 GraphQL 的强类型系统,减少后期工作。

总结

在这篇文章中,我们介绍了 apollo-codegen 的使用方法,这个包可以帮助我们更好地利用 GraphQL 的强类型系统,从 GraphQL 服务实现到前端所需的所有类型代码。同时,我们也给出了一个简单的例子以至于你可以自己动手试试。这个方案将自动化生成前端代码,并且利用 GraphQL 的类型系统,减少代码的错误率和后期大量开发代码的工作。希望这篇文章对你有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/109835


猜你喜欢

  • npm 包 brobbot-slack-instance 使用教程

    在前端开发中,有很多工具和库可以帮助我们更加高效地完成工作,其中 npm 是一个非常重要的工具之一。在本篇文章中,我们将会介绍一个基于 npm 的插件:brobbot-slack-instance。

    5 年前
  • npm 包 brobbot-instance 使用教程

    在开发前端项目的过程中,我们经常需要使用大量的第三方库来帮助我们完成各种各样的功能,npm 是一个非常不错的管理这些第三方库的工具。而 brobbot-instance 则是一个非常有用的 npm 包...

    5 年前
  • npm包 @types/xmpp__jid 使用教程

    前言 随着互联网的不断发展,前端技术也越来越复杂和多样化。而npm是前端工具中最为热门的之一,它提供了一个方便的途径来管理和使用JavaScript库、插件和框架。

    5 年前
  • npm 包 @types/node-xmpp-core 使用教程

    Node.js 是一个非常流行的 JavaScript 运行环境,我们可以用它来开发服务器、工具、脚本等等。而 XMPP 则是一种流行的实时通信协议,可以用于构建聊天应用、即时通讯应用等等。

    5 年前
  • NPM包 @xmpp/tcp 使用教程

    NPM包 @xmpp/tcp 是一款用于XMPP(即 Jabber 协议)的JavaScript库。 它提供了与XMPP服务器通信的基本功能,可以作为构建更复杂XMPP客户端或服务器的基础。

    5 年前
  • NPM包IRI使用教程

    简介 IRI是一个JavaScript工具库,可以帮助前端开发人员在处理URL的时候更加简单和方便。通过IRI,开发人员可以轻松地快速解析和操作URL,从而提高代码的可读性和可维护性。

    5 年前
  • npm 包 sasl-scram-sha-1 使用教程

    前言 在前端开发中,我们经常需要使用第三方库或插件来辅助我们完成一些任务。而在 npm 上,有很多非常优秀的开源库可以选择。其中,sasl-scram-sha-1 是一个用于在客户端和服务端之间进行双...

    5 年前
  • npm 包 sasl-plain 使用教程

    简介 sasl-plain 是一款用于授权认证的 npm 包,它提供基于 SASL Plain 机制的身份验证解决方案。 SASL 是 Simple Authentication and Securi...

    5 年前
  • npm 包 sasl-anonymous 使用教程

    什么是 SASL SASL(Simple Authentication and Security Layer)是一种用于在计算机网络中进行身份验证和安全通信的框架。

    5 年前
  • npm 包 @xmpp/time 使用教程

    本文将为大家介绍 npm 包 @xmpp/time 的使用教程,包括安装和基本使用方法。该包通常应用于 xmpp 客户端中用于时间同步的功能,是一个非常实用的 npm 库。

    5 年前
  • npm 包 xmpp.js 使用教程

    介绍 xmpp.js 是一个基于 XMPP 协议的 JavaScript 库,用于实现实时通信和聊天应用程序。它可以运行在浏览器以及 Node.js 环境中。 本文将介绍 xmpp.js 的使用方法,...

    5 年前
  • npm 包 @xmpp/sasl-scram-sha-1 使用教程

    在前端开发中,经常需要使用到 XMPP 通信协议。而在使用 XMPP 进行身份验证时,就需要用到 SASL 和 SCRAM-SHA-1 算法。这时,我们可以通过安装 @xmpp/sasl-scram-...

    5 年前
  • npm 包 @xmpp/sasl-plain 使用教程

    在前端开发中,经常需要使用一些 npm 包来简化开发流程。在本文中,我们将深入介绍一个名为 @xmpp/sasl-plain 的 npm 包,这是一个用于 XMPP 协议认证的简单机制的实现。

    5 年前
  • npm 包 @xmpp/sasl-anonymous 使用教程

    在现代开发中,使用 npm 包已经成为了一种常规的选择。npm 包可以让我们更快速地构建我们的应用程序而不必从头开始编写代码,这为前端开发者提供了很大的便利。本文将介绍一个 npm 包 @xmpp/s...

    5 年前
  • NPM包@xmpp/sasl 使用教程

    前言 NPM包@xmpp/sasl是一款基于XMPP协议的安全层认证协议工具,它是一款轻量级、高效的认证工具。本篇文章主要介绍如何使用npm包@xmpp/sasl,并针对该工具进行深度讲解,帮助读者理...

    5 年前
  • npm 包 @xmpp/resource-binding 使用教程

    前言 在现代化的 Web 应用程序中,通常使用 XMPP(即 扩展消息和存在协议)来实现实时通信。XMPP 已成为 WebRTC、聊天应用程序和其他实时网络应用程序的首选协议。

    5 年前
  • npm 包 @xmpp/reconnect 使用教程

    前言 @xmpp/reconnect 是一款 Twitter 的推特机器人,用于自动转推 Twitter 上的新闻、图片、视频等内容。@xmpp/reconnect 采用 JavaScript 编写,...

    5 年前
  • npm 包 @xmpp/middleware 使用教程

    简介 @xmpp/middleware 是一个 Node.js 的 XMPP 中间件框架,可以快速地在 XMPP 服务器上实现自定义的功能。其核心代码相当精简,使用者可以方便地根据自己的需求进行二次开...

    5 年前
  • npm 包 @xmpp/iq 使用教程

    1. 什么是 @xmpp/iq @xmpp/iq 是一个用于处理 XMPP 协议中 IQ (Info/Query) 消息的 Node.js 模块。IQ 消息是 XMPP 协议中最复杂的一种消息类型,它...

    5 年前
  • npm包 @xmpp/tls使用教程

    @xmpp/tls是基于XMPP协议的TLS模块,提供了一个安全的加密方式来保障网络通讯的安全。本文将详细介绍如何使用该npm包,包括安装、配置和示例代码。 安装 在安装@xmpp/tls之前,请确保...

    5 年前

相关推荐

    暂无文章