GraphQL 是一种用于 API 的查询语言,它旨在提供更好的数据查询和交互方式。它是由 Facebook 开发的,现在已经成为了一个非常流行的技术。在本文中,我们将介绍如何使用 Golang 和 GraphQL 构建一个基本的查询 API。
安装
首先,我们需要安装 Golang 和 GraphQL。Golang 可以从官方网站上下载。GraphQL 可以使用以下命令在终端中安装:
$ go get github.com/graphql-go/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 客户端来测试它。以下是一个示例查询:
query { hello }
这个查询将返回以下响应:
{ "data": { "hello": "Hello, World!" } }
结论
在本文中,我们介绍了如何使用 Golang 和 GraphQL 构建一个基本的查询 API。我们定义了一个 GraphQL Schema,并编写了一个处理查询请求的函数。我们还启动了一个 HTTP 服务器,并测试了我们的 API。希望这篇文章能够帮助你开始使用 Golang 和 GraphQL 构建更复杂的 API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/673ad9c939d6d08e88b025b6