前言
GraphQL 是一种查询语言和运行时系统,可用于构建 API,它被 Facebook 在 2012 年首次 提出,并在 2015 年成为开源项目,GraphQL 官方支持多种语言的实现 GraphQL 服务的工具、框架和库。GraphQL.js 是一种 JavaScript 实现,它可以在 Node.js 中使用 GraphQL。
在这篇文章中,我们将比较 GraphQL 和 GraphQL.js 工具的区别,重点是它们如何使用,以及它们如何分别适用于前端开发。
GraphQL vs GraphQL.js
GraphQL 主要是一种查询语言,而不是具体的实现方式。它是一种 API 语言,它可以让前端开发者更容易地查询和获取后端数据。这意味着,您可以使用任何编程语言来编写 GraphQL 服务,只要该语言支持 GraphQL。
GraphQL.js 是 JavaScript 版本的 GraphQL 实现,它可以运行在 Node.js 环境上。它提供了一组用于创建、操作和运行 GraphQL 服务的 JavaScript 工具。GraphQL.js 具体实现了如何查询数据,提供了 query、mutation 和 subscription 等操作。
GraphQL.js 对想要使用 JavaScript 实现 GraphQL 服务的开发人员是一个很好的选择。它是一款成熟的 JavaScript 工具,已经经历了多年的稳定性和活跃性。如果您在开发时遇到了错误,可以从社区和文档中获得帮助和支持。另外,GraphQL.js 也有很丰富的生态系统,包括现有的工具和库支持,这使得它适用于各种不同的应用场景中。
如何使用 GraphQL.js
我们可以使用 GraphQL.js 在 Node.js 中构建 GraphQL 服务。下面是一个示例:
安装及配置
首先,您需要在项目中安装 graphql 包。可以使用 npm 或者 yarn 进行安装。如果您的项目中已经使用了 babel,可能还需要安装 babel-plugin-transform-runtime。
npm install graphql npm install babel-plugin-transform-runtime # 如果需要
定义 schema
GraphQL 需要定义一个 schema 来描述你的数据、查询和操作接口。在下面的示例中,我们定义了一个 SCHEMA,它描述了一个使用者和他们的文章模型。注意,我们还通过 GraphQL 类型语言定义了一些类型。
-- -------------------- ---- ------- ------ - ----------- - ---- --------- ----- ------ - ------------- ---- ---- - --- --- ----- ------- ------ ------- ------ -------- - ---- ---- - --- --- ------ ------- -------- ------- ------- ----- - ---- ----- - -------- ----- ---- ------ -------- -------- ----- ---- ------ -------- - -- ------ ------- ------
定义 resolvers
我们还需要为查询和操作定义处理程序(resolver)。下面的示例中,我们定义了一个针对用户的查询、文章查询、创建用户和创建文章的操作,并将它们与适当的模型方法连接。
-- -------------------- ---- ------- ------ ------ ---- ---------- ----- ---- - - ----- -- -- -- -- - -- ----- -- ------ -- ------ -- -- - -- ------ -- ----- -- -- -- -- - -- ----- -- ------ -- ------ -- -- - -- ------ -- ----------- -- ----- -- -- - -- ----- -- ----------- -- ----- -- -- - -- ----- - - ------ ------- ----
运行服务器
最后,我们可以将 schema 和 resolvers 导入服务器文件并将其传递给 GraphQL API 来注册 GraphQL 服务。
-- -------------------- ---- ------- ------ ------- ---- --------- ------ - ----------- - ---- ----------------- ------ ------ ---- ---------- ------ ---- ---- ------------- ----- --- - --------- ------------------- ------------- ------- ---------- ----- --------- ----- --- ---------------- -- -- - -------------------- - ------- --- ------ -- ------------------------------- --
然后,我们就可以使用以下命令在终端运行我们的服务器:
node server.js
接着我们就可以通过发送 GraphQL 查询,向我们的 GraphQL 服务发送请求了。例如,要查找所有用户的 ID 和名称,可以发送以下查询:
{ users { id name } }
结论
GraphQL 以其灵活性、可扩展性和可操作性获得了众多开发人员的喜爱。在前端开发中,它被广泛用于构建 API,并帮助前端开发人员更轻松地获取和查询数据。
GraphQL.js 则是适用于 Node.js 平台的一款 GraphQL 实现工具,它提供了创建、操作和运行 GraphQL 服务的一组工具。如果您在前端应用程序中使用 Node.js,您可以考虑使用 GraphQL.js 来构建 GraphQL 服务。
我们希望这篇文章对您有所启发,并能帮助您更好地了解 GraphQL 和 GraphQL.js 的异同,从而更好地选择适合自己的工具来构建 GraphQL 服务。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6739488a317fbffedf1601c8