構建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中文網其他相關文章!

文章討論了CSS FlexBox,這是一種佈局方法,用於有效地對齊和分佈響應設計中的空間。它說明了FlexBox用法,將其與CSS網格進行了比較,並詳細瀏覽了瀏覽器支持。

本文討論了使用CSS創建響應網站的技術,包括視口元標籤,靈活的網格,流體媒體,媒體查詢和相對單元。它還涵蓋了使用CSS網格和Flexbox一起使用,並推薦CSS框架

本文討論了CSS盒裝屬性,該屬性控制了元素維度的計算方式。它解釋了諸如Content-Box,Border-Box和Padding-Box之類的值,以及它們對佈局設計和形式對齊的影響。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版