Express.js 是一个流行的 Node.js Web 框架,用于构建 Web 应用程序和 API。GraphQL 是一种查询语言和运行时,用于构建 API。在本文中,我们将探讨如何使用 Express.js 和 GraphQL 创建 API。
准备工作
在开始之前,我们需要安装一些必要的工具和库。首先,确保您已经安装了 Node.js 和 npm。接下来,使用以下命令安装 Express.js 和 GraphQL:
npm install express graphql express-graphql
创建 Express.js 应用程序
现在我们已经安装了必要的工具和库,我们可以开始创建我们的 Express.js 应用程序。在项目根目录中,创建一个名为 server.js
的文件,并添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - ------------------- ------- -- ---- ------- ---
这是一个非常简单的 Express.js 应用程序,它只是在根路由上发送“Hello World!”消息。现在,使用以下命令启动应用程序:
node server.js
现在您可以在浏览器中访问 http://localhost:3000
,并应该看到“Hello World!”消息。
添加 GraphQL 支持
现在我们已经创建了一个 Express.js 应用程序,让我们添加 GraphQL 支持。首先,我们需要定义一个 GraphQL 模式。在项目根目录中,创建一个名为 schema.js
的文件,并添加以下代码:
-- -------------------- ---- ------- ----- - ----------- - - ------------------- ----- ------ - ------------- ---- ----- - ------ ------ - --- -------------- - -------
这个模式只有一个查询类型,hello
,它将返回一个字符串。现在我们需要将这个模式与我们的 Express.js 应用程序集成。在 server.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ----------- - --------------------------- ----- ------ - -------------------- ------------------- ------------- ------- ------- ---------- - ------ -- -- ------ ------- -- --------- ---- ----
这将将 /graphql
路由添加到我们的应用程序中,并使用 express-graphql
中间件将 GraphQL 查询路由到我们的模式。我们还将 rootValue
设置为一个包含我们的查询的对象。最后,我们设置 graphiql
选项为 true
,以启用 GraphiQL 用户界面,该用户界面允许我们轻松测试我们的 API。
现在,使用以下命令重新启动应用程序:
node server.js
现在您可以在浏览器中访问 http://localhost:3000/graphql
,并应该看到 GraphiQL 用户界面。在查询编辑器中,输入以下查询:
query { hello }
然后按下“运行查询”按钮,您应该会在右侧面板中看到“Hello World!”消息。
添加更多查询
现在我们已经添加了一个查询,让我们添加一些更多查询。在 schema.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ------ - ------------- ---- ----- - ------ ------ ------- --- ----------------- ----- --------- ----- ----- - --- -------------- - -------
这将添加两个新的查询类型:random
和 rollDice
。random
将返回一个随机整数,rollDice
将返回一个数组,其中包含指定数量的骰子的指定面数的投掷结果。
现在我们需要将这些查询添加到我们的 rootValue
对象中。在 server.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- --------- - - ------ -- -- ------ -------- ------- -- -- ------------------------ - ---- --------- -- -------- -------- -- -- - ----- ------- - --- --- ---- - - -- - - -------- ---- - ------------------------------------- - --------- - --- - ------ -------- - -- ------------------- ------------- ------- ------- ---------- ---------- --------- ---- ----
现在,我们的 rootValue
对象包含我们的三个查询。我们还更改了 rollDice
函数,以接受 numDice
和 numSides
参数,并返回指定数量的投掷结果。
现在,使用以下命令重新启动应用程序:
node server.js
现在您可以在浏览器中访问 http://localhost:3000/graphql
,并测试我们的新查询。在查询编辑器中,输入以下查询:
query { hello random rollDice(numDice: 3, numSides: 6) }
然后按下“运行查询”按钮,您应该会在右侧面板中看到所有三个查询的结果。
结论
在本文中,我们探讨了如何使用 Express.js 和 GraphQL 创建 API。我们首先创建了一个简单的 Express.js 应用程序,然后添加了 GraphQL 支持,并定义了一些查询类型。最后,我们测试了我们的 API,并确保它可以正常工作。
这只是一个入门,您可以使用 GraphQL 构建更复杂的 API,并使用 Express.js 将其展现给用户。祝您好运!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67578b628880e0a86badfde4