构建API似乎令人生畏,但不一定是。本教程展示了如何在一个小时内使用最小代码和随时可用的工具创建和部署一个简单的,只读的API。不需要丰富的后端经验;对JavaScript和NPM的基本了解就足够了。
本指南揭示了诸如REST之类的常见API概念,并引入了GraphQL和无服务器体系结构。我们将使用易于可用的工具,并在此过程中解释其目的。最后,您将拥有一个没有服务器管理头痛的API。
关键概念:GraphQL和无服务器
API从根本上涉及阅读和更新数据。 REST API使用URL来定义数据访问点,需要多个复杂数据检索的请求。 GraphQL通过允许客户指定单个请求中所需的确切数据来提高效率。数据关系表示为图形,优化数据获取。
无服务器体系结构消除了管理服务器的需求。您只为消耗的资源付费,简化部署和维护。我们将利用此无服务器功能来利用NetLify功能。
贸易工具
node.js and express: node.js允许服务器端JavaScript执行,而Express则简化了API开发,其功能诸如路由和中间件之类的功能。
NETLIFY函数:无服务器平台提供免费部署和范围的功能缩放。 NetLify DEV允许本地测试。
项目设置
创建一个新的项目目录并使用
npm init
初始化。安装必要的软件包:
npm i express express-graphql graphql body-parser serverless-http netlify-cli -g
文件结构和配置
-
netlify.toml
:配置netlify以构建和部署。至关重要的是,它指定了无服务器功能的位置:
[建造] 命令=“ npm run构建” 发布=“构建” 功能=“功能”
-
/functions/api.js
:包含API代码。
api.js
代码分解
- 导入依赖性:
const express = require(“ express”); const bodyparser = require(“ Body-Parser”); const expressGraphQl = require(“ express-graphql”); const serverless = require(“无服务器-HTTP”); const {graphQlSchema,graphqlobjectType,graphqlString} = require(“ graphql”);
- 初始化Express和无服务器包装器:
const app = express(); Module.exports.handler = Serverless(App);
- 配置Express中间件:
app.use(bodyparser.json()); app.use(“/”,ExpressGraphQl({schema:schema:graphiql:true}));
- 定义GraphQL模式:
const schema = new GraphQlSchema({{ 查询:新graphqlobjectType({{ 名称:“ Helloworld”, 字段:()=>({ 信息: { 类型:GraphQlString, 分辨率:()=>“ Hello World”, },, }), }), });
本地发展和测试
在您的终端中运行netlify dev
。访问http://localhost:8888/.netlify/functions/api
GraphIQL操场。通过查询{ message }
来测试您的API。
部署
将您的项目连接到NetLify(例如,通过GitHub)进行自动部署。 Netlify将处理构建和部署您的无服务器功能。
可选:请求重定向
在您的项目root中创建一个_redirects
文件,以将请求从/api
重定向到NetLify函数:
<code>/api /.netlify/functions/api 200!</code>
这简化了API访问。
结论
本教程为构建和部署无服务器GraphQl API的基础提供了基础。该方法是可扩展的,可以根据需要进行更复杂的API开发。请记住要探索链接的资源,以深入研究GraphQL和无服务器技术。完整的源代码可在GitHub上找到(原始文章中提供的链接)。
以上是使用Express构建无服务器GraphQl API并NETLIFY的详细内容。更多信息请关注PHP中文网其他相关文章!

Svelte Transition API提供了一种使组件输入或离开文档(包括自定义Svelte Transitions)时动画组件的方法。

前几天我只是和埃里克·迈耶(Eric Meyer)聊天,我想起了我成长时代的埃里克·迈耶(Eric Meyer)的故事。我写了一篇有关CSS特异性的博客文章,以及

文章讨论了使用CSS来获得阴影和渐变等文本效果,优化它们以进行性能并增强用户体验。它还列出了初学者的资源。(159个字符)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中