Golang 的 GraphQL: 初步教程

阅读时长 6 分钟读完

GraphQL 是一种用于 API 的查询语言,它旨在提供更好的数据查询和交互方式。它是由 Facebook 开发的,现在已经成为了一个非常流行的技术。在本文中,我们将介绍如何使用 Golang 和 GraphQL 构建一个基本的查询 API。

安装

首先,我们需要安装 Golang 和 GraphQL。Golang 可以从官方网站上下载。GraphQL 可以使用以下命令在终端中安装:

构建一个 GraphQL Schema

首先,我们需要定义一个 GraphQL Schema。在 GraphQL 中,Schema 是用于定义查询和数据类型的结构。以下是一个简单的示例:

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

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

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

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

在上面的代码中,我们定义了一个名为 RootQuery 的对象,其中包含一个名为 hello 的字段。这个字段返回一个字符串 "Hello, World!"。我们还创建了一个 schema,将 RootQuery 对象作为查询的根节点。

处理查询请求

接下来,我们需要编写一个处理查询请求的函数。这个函数将接收 GraphQL 查询和变量参数,并返回查询结果。以下是一个简单的示例:

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

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

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

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

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

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

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

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

在上面的代码中,我们定义了一个名为 graphqlHandler 的函数,它接收一个 GraphQL Schema 并返回一个 http.HandlerFunc。在处理 HTTP 请求时,它将解码请求参数,并使用 graphql.Do 函数执行查询。如果有错误发生,它将返回一个错误响应。

启动服务器

现在,我们已经定义了 Schema 和处理查询请求的函数。接下来,我们需要启动一个服务器,并将查询请求路由到 graphqlHandler 函数。以下是一个简单的示例:

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

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

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

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

在上面的代码中,我们定义了一个名为 main 的函数,它将 GraphQL 查询路由到 graphqlHandler 函数。我们还启动了一个 HTTP 服务器,监听端口 8080。

测试

现在,我们已经编写了一个基本的 GraphQL API。我们可以使用 GraphQL Playground 或任何其他 GraphQL 客户端来测试它。以下是一个示例查询:

这个查询将返回以下响应:

结论

在本文中,我们介绍了如何使用 Golang 和 GraphQL 构建一个基本的查询 API。我们定义了一个 GraphQL Schema,并编写了一个处理查询请求的函数。我们还启动了一个 HTTP 服务器,并测试了我们的 API。希望这篇文章能够帮助你开始使用 Golang 和 GraphQL 构建更复杂的 API。

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

纠错
反馈