简介
GraphQL 是 Facebook 出品的一种查询语言和服务端执行语言的组合,用于 API 的实现。graphql-server-express 是一个用于将 GraphQL 服务绑定到 Express 服务器上的 npm 包。
本文将为您详细介绍如何使用 graphql-server-express,并提供示例代码。
安装
您可以通过以下命令安装 graphql-server-express:
--- ------- ----------------------
配置
在你的 Express app 中,你需要创造一个 GraphQL schema 并且创建一个委托的Express 中间件 (middleware) 来处理 GraphQL 请求。
创建 Schema
GraphQL 是一个基于 schema 的查询语言,所以我们首先需要创建一个 schema。 schema 表示了你 API 上可用的 type、query 以及 mutation。
schema 必须定义一个 query 和 mutation 类型,即最顶层的 type。
下面是一个简单的 schema 示例:
----- - ----------- - - ------------------- ----- ------ - ------------- ---- ----- - ------ ------ - ---
这个 schema 定义了一个 query 类型,其中 hello 字段返回字符串类型的“hello”。
创建 Express 中间件 (middleware)
graphql-server-express 提供了 express-graphql 中间件。你需要提供一个 schema,并且中间件处理将用此 schema 来解析查询。此中间件将解析 Query/Mutation 中定义的请求并返回 JSON 结构。下面是一个简单的示例:
----- ------- - ------------------- ----- ---------- - ----------------------- ----- - -------------- - - ---------------------------------- ----- --- - ---------- --------------------------- ------------------- ---------------- ------ ----
GraphQL 请求需要被 POST 提交到 /graphql
路径上。可以使用 curl 命令来测试请求 curl -X POST http://localhost:3000/graphql -d '{"query": "{ hello }"}' -H 'Content-Type: application/json'
。这个请求将执行上面的 Query,服务器将返回 JSON 形式的结果。
示例代码
下面是一个完整的示例代码,包括了 schema 的定义和关联 api 的 express 配置:
----- ------- - ------------------- ----- - ------------- --- - - --------------------------------- ----- --- - ---------- -- ------ ---- ------ ----- ------- ------ -------- ----- -------- - ----- ---- ----- - ------ ------ - --- -- ------- -------- --------- --- ---- ------ ------ ----- --------- - - ------ - ------ -- -- ------- - -- ----- ------ - --- -------------- --------- --------- --- ------------------------ --- --- ------------ ----- ---- -- -- -- -------------------- ------ ----- -- -------------------------------------------- --
运行节点服务器 npm run dev 这将启动应用程序并在控制台输出以下信息:
------- ------ ----- -- -----------------------------
结论
在 Express 应用程序中为 GraphQL 查询添加支持非常简单,graphql-server-express 提供了一个用于将 GraphQL 服务绑定到 Express 服务器的中间件,你只需要提供 schema 和 middleware。
希望这篇文章对你和学习和使用 graphql-server-express 有所帮助。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedba99b5cbfe1ea06118f5