GraphQL 是一种用于构建 API 的查询语言和运行时环境。它由 Facebook 开发并于 2015 年开源。相比于传统的 RESTful API,GraphQL 更加灵活,可以根据客户端的需求来获取数据。在前端开发中,GraphQL 已经成为一种非常流行的技术,但它同样适用于后端 API 的构建。本文将介绍如何使用 GraphQL 构建一个后端 API。
什么是 GraphQL?
GraphQL 是一种查询语言,用于 API 的设计和开发。它定义了一种类型系统,客户端可以根据自己的需求指定查询参数,后端会返回符合条件的数据。GraphQL 的查询语言非常灵活,客户端可以根据需要指定需要查询的字段和数据类型。相比于传统的 RESTful API,GraphQL 可以减少请求次数和传输数据的大小,提高应用的性能和效率。
如何使用 GraphQL 构建后端 API?
使用 GraphQL 构建后端 API 的过程可以分为以下几个步骤:
1. 定义数据模型
首先需要定义数据模型,包括数据类型和关系。GraphQL 使用类型系统来定义数据模型,可以使用 SDL(Schema Definition Language)或者编程语言来定义。
以一个简单的博客系统为例,假设有两个数据类型:文章和作者。
-- -------------------- ---- ------- ---- ------ - --- --- ----- ------- ------ ------- ------ -------- - ---- ---- - --- --- ------ ------- -------- ------- ------- ------- -展开代码
在这个数据模型中,每个作者可以有多篇文章,每篇文章只属于一个作者。
2. 定义查询和变更
定义好数据模型后,需要定义查询和变更来获取和修改数据。查询和变更都是由客户端发起的,后端需要根据客户端的请求来返回数据或者修改数据。
定义查询和变更可以使用 SDL 或者编程语言来定义。
-- -------------------- ---- ------- ---- ----- - -------- ----- ---- ---------- ----- ------ - ---- -------- - ----------------- -------- -------- -------- --------- ----- ---- -------------- ---- ------ ------- -------- -------- ---- -------------- ----- ------- -展开代码
在这个例子中,定义了两个查询:获取文章和获取作者。定义了三个变更:创建文章、更新文章和删除文章。
3. 实现查询和变更
定义好查询和变更后,需要实现这些查询和变更。可以使用任何编程语言来实现 GraphQL 的查询和变更,只需要实现相应的解析器即可。
以 JavaScript 为例,可以使用 GraphQL.js 来实现查询和变更。
-- -------------------- ---- ------- ----- - -------- ----------- - - ------------------- ----- ------ - ------------- ---- ------ - --- --- ----- ------- ------ ------- ------ -------- - ---- ---- - --- --- ------ ------- -------- ------- ------- ------- - ---- ----- - -------- ----- ---- ---------- ----- ------ - ---- -------- - ----------------- -------- -------- -------- --------- ----- ---- -------------- ---- ------ ------- -------- -------- ---- -------------- ----- ------- - --- ----- ------- - - - --- ---- ----- -------- ------ ------------------- -- - --- ---- ----- ------ ------ ----------------- -- -- ----- ----- - - - --- ---- ------ ------ ------- -------- ----- -- -- ----- ------ --------- --- -- - --- ---- ------ ---------- -------- ------ ------- -- -- --------- --------- --- -- -- ----- ---- - - ----- -- -- -- -- --------------- -- ------- --- ---- ------- -- -- -- -- ------------------- -- --------- --- ---- ----------- -- ------ -------- -------- -- -- - ----- -- - ------------------- - --- ----- ---- - - --- ------ -------- -------- -- ----------------- ------ ----- -- ----------- -- --- ------ ------- -- -- - ----- ---- - --------------- -- ------- --- ---- -- ------- ---------- - ------ -- --------- ------------ - -------- ------ ----- -- ----------- -- -- -- -- - ----- ----- - -------------------- -- ------- --- ---- -- ------ --- --- ------ ------ ------------------- --- ------ ----- -- -- ----- ----- - - ----- - -------- ---- - ----- ------- ------ - ---- ----- - - - -- --------------- ------ ----------------- -- - -------------------- ---展开代码
在这个例子中,实现了查询和变更的解析器。查询和变更的解析器都是一个函数,根据传入的参数返回相应的数据。可以使用任何数据库来存储数据,这里使用了一个简单的数组来模拟。
4. 使用 GraphQL Playground 测试 API
使用 GraphQL Playground 来测试 API,可以非常方便地查看查询和变更的结果。GraphQL Playground 是一个交互式的 GraphQL IDE,可以用来测试和调试 GraphQL API。
安装 GraphQL Playground 可以使用 npm 安装:
npm install --save graphql-playground-middleware-express
使用 GraphQL Playground 可以直接在浏览器中访问:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - ----------- - - --------------------------- ----- - -------------------- - - ------------------------- ----- - ------------ - - -------------------------- ----- - ------------ - - --------------------------------- ----- - --------------- - - ------------------------------ ----- - ------ - - -------------------------- ----- --------- - ----------------------- ----- ----------- - ------------------------- ----- -------- - --------------------------------- ----- ------ - ---------------------- --------- ---------- --- ----- ------ - --- -------------- ------- ----------------------- --------------------- -------------- ----- ----------- ----- --- ----- --- - ---------- ------------------- ------------- ------- --------- ----- ---- ------------------------ --- --- ---------------- -- -- - -------------------- --- ------ ------- -- -------------------------------- ---展开代码
在浏览器中访问 http://localhost:4000/graphql,就可以使用 GraphQL Playground 来测试 API。
总结
本文介绍了如何使用 GraphQL 构建后端 API,包括定义数据模型、定义查询和变更、实现查询和变更以及使用 GraphQL Playground 测试 API。GraphQL 的灵活性可以提高应用的性能和效率,但同时也需要更多的开发工作。如果你正在构建一个需要高度灵活性和可扩展性的 API,GraphQL 可能是一个不错的选择。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/657d815cd2f5e1655d85a37e