Deno 是一个新颖的 JavaScript/TypeScript 运行时环境,它的目的是提供一个安全的环境来运行 JavaScript/TypeScript 代码。GraphQL 是一种现代化的 API 查询语言,它能够有效地解决 REST API 中的一些常见问题。在本篇文章中,我们将会学习如何在 Deno 中使用 GraphQL 进行 API 开发。
安装必要的库和工具
我们需要安装一些必要的库和工具来使用 GraphQL ,首先是安装 Deno:
$ curl -fsSL https://deno.land/x/install/install.sh | sh
$ export PATH="$HOME/.deno/bin:$PATH"
接着安装 GraphQL 相关库:
$ deno install --allow-read --allow-write --allow-net --unstable https://deno.land/x/deno_graphql/mod.ts
编写 GraphQL API
我们可以从以下代码开始,它将创建一个简单的 GraphQL API:
-- -------------------- ---- ------- ------ - ------------ ---- - ---- --------------------------------- ------ - ------------- ---- - ---- ------------------------------------------ ----- --- - --- -------------- ----- ----- - ---- ---- ----- - ------ ------- - -- ----- --------- - - ------ - ------ -- -- -------- -- -- ----- -------------- - ----- -------------- --------- ------ ---------- --- ------------- ----- -- - ----- --------- ------------------------- - ----- ----------------------- ------ ------------- --- --- ------------ ----- ---- --- ------------------- ------- -- --------------------------------
在这个示例中,我们创建了一个名为 hello
的 query ,它返回了一个简单的字符串 “world”。我们还要创建一个 GraphQLService
对象来处理 GraphQL 操作。
向 GraphQL API 发送请求
现在我们可以使用 Altair GraphQL Client 来测试我们的 GraphQL API 了。下载 Altair GraphQL Client 后访问 http://localhost:8000/graphql
,进入 Altair 后将 GraphQL API 的地址设置为 http://localhost:8000/graphql
,如下图:
接着在左侧的 Query 标签页中输入以下查询语句:
query { hello }
按下运行按钮,你将在右侧看到以下响应:
{ "data": { "hello": "world" } }
从数据库中检索数据
现在我们已经知道了如何创建和测试一个简单的 GraphQL API ,接下来我们将会学习如何从数据库中检索数据。我们将会使用 SQLite 数据库,并使用 deno-sqlite 库来访问它。
首先,下载 deno-sqlite 依赖库:
$ deno install --allow-read --allow-write --allow-plugin --unstable https://deno.land/x/sqlite/mod.ts
接下来我们开始编写如下代码:
-- -------------------- ---- ------- ------ - ------------ ---- - ---- --------------------------------- ------ - ------------- ---- - ---- ------------------------------------------ ------ - ---- - ---- ------------------------------------ ------ - ---------- - ---- ---------------------------------- ------ - --------- ---------------- - ---- ------------------------------------ ----- ---- - ----- ----- --- - --- -------------- ----- ----- - ---- ---- ---- - --- --- ----- ------- ---- ---- - ---- ----- - ------ -------- - ---- -------- - ------------- -------- ---- ------ ---- - -- --------- ---- - --- ------- ----- ------- ---- ------- - --- ------ ------ - - - --- ---- ----- ------- ---- --- -- - --- ---- ----- ------- ---- --- -- -- ----- --------- - - ------ - ------ -- -- ------ -- --------- - -------- --- ---- ----- - ----- ------- ---- ------ -- -- - ----- ------- - - --- ------------- - -------------- ----- ---------- ---- --------- -- -------------------- ------ -------- -- -- -- ----- -------------- - ----- -------------- --------- ------ ---------- --- ------------- ----- -- - ----- -------- - ------------------------- ----- ---- - ----------- ----- ------- - - ----- ----------------- ------ ------------- -- -- --------- --- ----------- - ----- ------------------------------------------ - ---- -- ---------------------- --------- ----------- - ----- --------- --------- --------- - ---- - ----- --------- -------------- --------- - --- ------------------------------ -- -- - ---------------------- -- --------------------------- --- ----- ------------ ---- ---
在上面的代码中,我们为 API 添加了一个名为 users
的查询和一个名为 addUser
的 mutation 。这些操作将在一个名为 users
的数组上执行,我们也可以通过添加数据库来进行数据的存储和管理。
现在我们可以运行这个程序,并通过 Altair GraphQL Client 访问我们的 API ,在左侧的 Query 标签页中输入以下查询语句:
query { users { id name age } }
按下运行按钮,你将在右侧看到以下响应:
-- -------------------- ---- ------- - ------- - -------- - - ----- ---- ------- ------- ------ -- -- - ----- ---- ------- ------- ------ -- - - - -
现在我们添加一些数据,切换到 Mutation 标签页中,输入以下查询语句:
mutation { addUser(name: "Bob", age: 20) { id name age } }
按下运行按钮,你将在右侧看到以下响应:
-- -------------------- ---- ------- - ------- - ---------- - ----- ---- ------- ------ ------ -- - - -
回到 Query 标签页,再次运行查询:
query { users { id name age } }
你将看到结果中已经包含了我们刚刚添加的用户:
-- -------------------- ---- ------- - ------- - -------- - - ----- ---- ------- ------- ------ -- -- - ----- ---- ------- ------- ------ -- -- - ----- ---- ------- ------ ------ -- - - - -
总结
在本篇文章中,我们学习了如何在 Deno 中使用 GraphQL 进行 API 开发。我们了解了如何编写一个简单的 GraphQL API ,以及如何从数据库中检索数据。GraphQL 是一个非常强大的工具,它可以让我们构建出高度可靠、可扩展的 API 服务。Deno 的出现为我们提供了一个安全、现代、高效的开发工具,让我们可以更容易地使用 GraphQL 进行 API 开发。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a8b11848841e9894516835