npm 包 @apollo/server 使用教程

阅读时长 5 分钟读完

前言

在现代化的网站开发中,前端和后端分离已成为一个非常流行的趋势,由此而生的 GraphQL 技术相比于 RESTful API 更为灵活,在前后端分离的应用场景下更为适用。而 @apollo/server 则是一个开源的 GraphQL 服务器,它能够快速构建起您的 GraphQL API。

本文就为您带来 @apollo/server 在前端应用中使用的教程,让您快速上手这个强大的 npm 包。

什么是 @apollo/server

@apollo/server 是一个开源的 GraphQL 服务器,它能够快速搭建起一个 GraphQL API 服务。它通过插件机制提供了多种功能,包括缓存、限制查询深度和复杂度、身份验证、错误处理等等。

在 @apollo/server 中,每个 GraphQL 请求都是通过一个 Resolver 来处理的。Resolver 接收参数并返回一个值,这个返回值会被当做 GraphQL 查询的结果进行输出。而这个参数和返回值的过程便是 GraphQL 服务器的核心。

@apollo/server 安装及使用

首先,您需要在您的项目中安装 @apollo/server。

在使用 @apollo/server 之前,您需要创建一个用于处理请求的 GraphQL Schema。这个 Schema 告知 @apollo/server 有哪些类型和字段可供查询,以及如何查询这些数据。

在接下来的示例中,我们将构建一个简单的电影列表,包含以下几个字段:

  • title
  • releaseDate
  • director
  • actors
  1. 创建 Schema

这里我们将以最简单的方式来创建一个 GraphQL Schema,定义电影列表的类型及字段。

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

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

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

定义好的 Schema 放在 typeDefs 对象中,其中定义了一个 Movie 的类型以及 movies 的查询字段,这个查询字段返回一个 Movie 类型的数组。

  1. 创建 Resolvers

在 Resolver 中实现查询逻辑,当我们查询电影列表时,会从数据库中提取电影信息并返回电影列表。此时,我们先将电影信息写死,然后返回它。

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

Resolver 是一个返回查询结果的函数。在这个 resolver 中,当收到查询请求时,它将返回一个包含 movie 信息的数组。

  1. 启动服务器

有了 Schema 和 Resolver,我们就可以启动服务器来处理请求了。以下是一个简单的服务器示例:

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

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

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

现在我们已经完成了一个完整的 GraphQL API 服务器。

  1. 测试

在命令行中运行以下命令启动服务器:

然后,您可以在浏览器中尝试发出查询请求:

当结果返回时,您应该会看到电影的详细信息。

结论

总的来说,@apollo/server 是一个非常强大和灵活的 npm 包,它能够快速搭建起一个 GraphQL API 服务器。在本文中,我们介绍了 @apollo/server 的一些基本概念和用法,让您可以快速上手并开始开发自己的 GraphQL API。

如果您想深入了解更多关于 @apollo/server 的高级用法,请查阅官方文档。

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