npm 包 graphql-compose-rest 使用教程

在前端开发中,经常需要处理 Restful API 的请求和响应。而同时,GraphQL 也逐渐为人所知。这时候,如果我们可以把 GraphQL 和 Restful API 结合起来,会给我们的开发带来很大的便捷。那么,如何实现这一目标呢?今天,我们来介绍一款可以帮助我们实现这一目标的 npm 包:graphql-compose-rest。

什么是 graphql-compose-rest

graphql-compose-rest 是一个 npm 包,该包使用了 compose 的概念。该包可以帮助我们将 Restful API 映射成 GraphQL 的 schema,并且能够自动生成基于 REST 的查询和变异。

如何使用

安装

安装命令如下:

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

初始化 schema

我们需要使用 graphql-compose 来初始化我们的 GraphQL schema。我们可以使用如下方式创建 schema 文件:

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

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

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

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

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

在该示例代码中,我们定义了 UserTC 的 GraphQL schema,并定义了 UserTC 的查询解析器,该解析器将调用 REST API 来获取数据。并且,我们使用了 formatResponse 方法和 responseDataParser 方法来解析查询结果,使得我们可以获取我们需要的字段,并且将结果映射成 GraphQL 的类型。

初始化 Restful API resolvers

在初始化 schema 后,我们需要定义 Resful API 的解析器。可以使用如下代码:

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

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

在上述代码中定义了两个请求,查询 getUserById 和变异 createUser,该请求将调用 REST API。在这里,我们也使用了 node-fetch 来处理查询和变异的请求,并且定义了 REST API 的 headers。

启动 GraphQL 服务

最后,我们需要启动 GraphQL 服务。我们可以使用如下代码:

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

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

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

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

在上述代码中,我们使用 express 搭建了一个服务,并且将我们的 GraphQL schema 和 resolvers 绑定到了该服务上。最后,我们可以在浏览器上访问 http://localhost:4000/graphql 来查看 GraphQL 的 Playground。

结论

graphql-compose-rest 是一个强大的 npm 包,使用它可以帮助我们将 Restful API 嵌入到 GraphQL 中。通过本文所述的方法,我们可以轻松地自动生成简单但强大的 API。如果你有一些经验,那么你可以根据自己的喜好和需求定制该 API,并且通过该 API 更快地开发出可扩展和易维护的应用程序。

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


猜你喜欢

  • npm 包 k-test-tool 使用教程

    在前端开发中,测试是一个非常重要的环节。在测试的过程中,我们需要使用一些工具来帮助我们进行各种测试。其中,npm 包 k-test-tool 是一款非常实用的测试工具,它可以帮助我们进行各种测试操作。

    3 年前
  • npm 包 datasources-migrator-simple-arangorm 使用教程

    前言 在前端开发中,我们经常会使用不同的数据源。然而有时候,我们需要从一个数据源转移到另一个数据源,例如从 MySQL 数据库转移到 ArangoDB 数据库。这时候,数据迁移就十分重要。

    3 年前
  • npm 包 goygovrustam 使用教程

    介绍 goygovrustam 是一个基于 React.js 和 Node.js 的开源 Web 应用程序。它提供一个简单的、易于使用的界面来进行产品的管理、发布和统计等方面的操作。

    3 年前
  • npm 包 Generator-botscaffold 使用教程

    介绍 在前端开发中,我们常常需要创建新的项目。手动搭建项目架构是一件繁琐且容易出错的事情。而 npm 包 generator-botscaffold 就是为了解决这个问题而诞生的。

    3 年前
  • npm 包 lib-client-elrn-js 使用教程

    在前端开发中,我们经常需要使用一些开源库来辅助我们完成一些任务。lib-client-elrn-js 是一个npm包,它提供了一些处理加密货币工作的工具,如交易、钱包管理等。

    3 年前
  • npm 包 react-simple-triangle 使用教程

    在前端开发中,常常需要绘制三角形。为了让开发者更方便地绘制三角形,npm 社区中出现了不同的绘制三角形的库,而 react-simple-triangle 是其中一种。

    3 年前
  • npm 包 http-server-spa-e2e 使用教程

    介绍 http-server-spa-e2e 是一款开源的 npm 包,它是一个扩展了 http-server 的工具,提供了一个简单易用的能力,用于向单页应用程序(Single Page Appli...

    3 年前
  • npm 包 vue-slug 使用教程

    npm 是现代前端开发的重要一环,它提供了海量的 JavaScript 第三方包,方便开发者快速搭建前端应用,极大地提高了工作效率。vue-slug 就是其中之一,它是一个基于 Vue.js 的 UR...

    3 年前
  • npm 包 @ngscaffolding/demoapp 使用教程

    什么是 npm 包? npm 是世界上最大的代码包管理工具,它可以帮助我们轻松下载和管理代码包。npm 包是一个名为 @ngscaffolding/demoapp 的 Angular 项目开发工具包,...

    3 年前
  • npm 包 utiltest 使用教程

    在前端开发中,我们经常会用到一些工具函数来简化代码编写和提高效率。 utiltest 是一个优秀的 npm 包,其提供了一系列常用的工具函数,可以帮助我们更好地处理数据、操作数组、字符串等,同时也可以...

    3 年前
  • npm 包 @sapien/types 使用教程

    在前端开发中,使用类型定义是非常重要的,因为它可以帮助代码更加规范化,提升代码质量,同时也方便协作。而在 JavaScript 中,类型定义非常常见,而 npm 包 @sapien/types 就是一...

    3 年前
  • npm 包 random2 使用教程

    简介 random2 是一个非常强大的 JavaScript 库,可以帮助前端开发人员快速生成随机数、随机字符串、颜色等等。本文将详细介绍如何使用 random2 来实现各种随机需求。

    3 年前
  • npm 包 ultimate-column-chart-negative-values 使用教程

    最近,我们需要在前端项目中展示关于数据的具体信息。其中,柱状图是比较常见的一个展示方式。那么,我们如何在数据中存在负数的情况下展示柱状图呢?今天,我将为大家介绍一个 npm 包:ultimate-co...

    3 年前
  • npm 包 damo-l20n 使用教程

    前言 在前端开发中,国际化(i18n)是一个常见的需求。而 damo-l20n 就是一个可以较为方便的实现国际化的 npm 包,它是由 Mozilla 基金会开发的开源项目,在前端开发中有着广泛的应用...

    3 年前
  • npm包electron-simple-updater-v2使用教程

    随着网络技术的不断发展,越来越多的软件都在向Web端靠拢并将其移向了云端部署。而在这样的趋势中,Electron技术也逐渐成为了前端工程师的重要技能之一。如果你正在学习Electron技术,那么本文介...

    3 年前
  • npm 包 lord_truth 使用教程

    什么是 lord_truth lord_truth 是一个用于表单验证的自定义校验库。它提供了一些常见的表单验证规则,同时也支持自定义验证规则。 安装 使用 npm 安装 lord_truth: --...

    3 年前
  • npm 包 react-stripe-elements-universal 使用教程

    介绍 react-stripe-elements-universal 是一个用于 React 的 Stripe 支付库。它为你提供了一个简单的方法来在 React 应用程序中处理付款。

    3 年前
  • npm 包 @cime/ngx-select 使用教程

    简介 @cime/ngx-select 是一个基于 Angular 的开源下拉框组件,提供了丰富的功能和灵活的配置项,适用于各种场景下的下拉选择数据。使用此组件,可以轻松实现下拉选择器功能,提高用户交...

    3 年前
  • npm 包 @j154004/dirmods 使用教程

    在前端开发中,我们经常需要处理一些文件操作,例如:读取文件、写入文件、复制文件、删除文件等。为了更加方便的进行文件操作,我们可以使用 npm 包 @j154004/dirmods。

    3 年前
  • NPM 包 @mindhive/meteor-react-instantsearch 的使用教程

    NPM 是世界上最大的软件包管理器,而 @mindhive/meteor-react-instantsearch 是一个基于 React 和 Meteor 的搜索库。

    3 年前

相关推荐

    暂无文章