它并不是一個(gè)具體的規(guī)范,而是一套自 2000 年代初以來成為構(gòu)建 Web API 共同標(biāo)準(zhǔn)的新規(guī)則。遵循 REST 標(biāo)準(zhǔn)的 API 被稱為 RESTful API。一些實(shí)際的例子包括 Twilio、Stripe 和 Google Maps。

REST API 基礎(chǔ)

RESTful API 的基本概念

RESTful API 將資源組織成一組獨(dú)特的 URI(Uniform Resource Identifiers,統(tǒng)一資源標(biāo)識(shí)符)。URI 用于區(qū)分服務(wù)器上的不同資源類型。以下是一些示例:

你可能聽說過 CRUD(Create、Read、Update、Delete),這就是它的含義。

請(qǐng)求正文

請(qǐng)求的正文中可以包含一個(gè)可選的 HTTP 請(qǐng)求正文,其中包含自定義數(shù)據(jù)負(fù)載,通常以 JSON 格式編碼。

服務(wù)器響應(yīng)

服務(wù)器接收到請(qǐng)求后,會(huì)處理它并將結(jié)果格式化為響應(yīng)。響應(yīng)的第一行包含 HTTP 狀態(tài)碼,用于告知客戶端請(qǐng)求的結(jié)果:

表現(xiàn)良好的客戶端可以選擇重試帶有 500 級(jí)狀態(tài)碼的失敗請(qǐng)求。我們說“可以選擇重試”,是因?yàn)槟承┎僮鞑皇莾绲鹊?,重試時(shí)需要格外小心。當(dāng) API 是冪等的,多次發(fā)送相同的請(qǐng)求與發(fā)送一次請(qǐng)求的效果相同。通常,創(chuàng)建新資源的 POST 請(qǐng)求不是冪等的。

響應(yīng)正文是可選的,可以包含數(shù)據(jù)負(fù)載,通常以 JSON 格式呈現(xiàn)。


REST 的關(guān)鍵特性

無狀態(tài)

REST 實(shí)現(xiàn)應(yīng)該是無狀態(tài)的。這意味著雙方不需要存儲(chǔ)彼此的任何信息,每個(gè)請(qǐng)求和響應(yīng)(周期)都與其他所有請(qǐng)求和響應(yīng)獨(dú)立。這使得 Web 應(yīng)用程序易于擴(kuò)展且表現(xiàn)良好。

分頁

如果 API 端點(diǎn)返回大量數(shù)據(jù),應(yīng)使用分頁。常見的分頁方案使用“l(fā)imit”和“offset”作為參數(shù)。例如:

GET /products?limit=10&offset=20

如果未指定這些參數(shù),服務(wù)器應(yīng)假設(shè)合理的默認(rèn)值。

版本控制

API 的版本控制非常重要。版本控制允許實(shí)現(xiàn)提供向后兼容性,以便在從一個(gè)版本引入破壞性更改到另一個(gè)版本時(shí),消費(fèi)者有足夠的時(shí)間遷移到下一個(gè)版本。有許多方法可以對(duì) API 進(jìn)行版本控制,最直接的方法是在 URI 上為資源前綴添加版本號(hào)。例如:

GET /v1/products


總結(jié)

RESTful API 在合理應(yīng)用時(shí)簡(jiǎn)單且有效。它可能不是所有公司的最佳選擇,但它簡(jiǎn)單且足夠好,這就是它被廣泛使用的原因。還有其他流行的 API 選項(xiàng),如 GraphQL 和 gRPC,我們將在單獨(dú)的文章中討論它們并進(jìn)行比較。

原文引自YouTube視頻:https://www.youtube.com/watch?v=-mN3VyJuCjM

上一篇:

異步編程實(shí)戰(zhàn):在 .NET 8 ASP.NET Core Web API 中使用 async/await

下一篇:

ASP.NET Core Web API 數(shù)據(jù)校驗(yàn)實(shí)戰(zhàn):路由約束與 DataAnnotations
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)