日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Facebook、GitHub、google以及其他許多巨頭都需要一種服務和消費數(shù)據(jù)的方式。在當今的開發(fā)環(huán)境中,RESTful API仍然是服務和消費數(shù)據(jù)的最佳選擇之一。

全棧開發(fā)必備技能:構(gòu)建RESTful API的13種最佳實踐

 

但是你是否考慮過學習行業(yè)標準?設(shè)計RESTful API的最佳實踐是什么?從理論上講,任何人都可以在不到五分鐘的時間內(nèi)快速啟動數(shù)據(jù)API——無論是Node.js,Golang還是Python。

我們將探討在構(gòu)建RESTful API時應考慮的13種最佳實踐。但首先,讓我們快速闡明RESTful API。

什么是RESTful API?

RESTful API需要滿足以下約束才能被稱為RESTful API。

  1. 客戶端-服務器模型:RESTful API遵循客戶端-服務器模型,其中服務器為數(shù)據(jù)提供服務,而客戶端連接到服務器以使用數(shù)據(jù)??蛻舳撕头掌髦g的交互是通過HTTP(S)請求進行的,該請求傳輸了請求的數(shù)據(jù)。
  2. 無狀態(tài):更重要的是,RESTful API應該是無狀態(tài)的。每個請求都被視為獨立請求。服務器不應跟蹤可能影響將來請求結(jié)果的任何內(nèi)部狀態(tài)。
  3. 統(tǒng)一接口:最后,一致性定義了客戶端和服務器之間的交互方式。RESTful API定義了命名資源的最佳實踐,但定義了允許你修改資源/與之交互的固定HTTP操作。可以在RESTful API中訪問以下HTTP操作:GET請求:檢索資源POST請求:創(chuàng)建資源或?qū)⑿畔l(fā)送到APIPUT請求:創(chuàng)建或替換資源PATCH請求:更新現(xiàn)有資源DELETE請求:刪除資源

在對RESTful API的特性有了更深入的了解后,是時候了解更多關(guān)于RESTful API的最佳實踐了。

本文為你提供了13種最佳實踐的可行清單。讓我們來探索!

全棧開發(fā)必備技能:構(gòu)建RESTful API的13種最佳實踐

 

1.正確使用HTTP方法

我們已經(jīng)討論了可用于修改資源的HTTP方法:GET,POST,PUT,PATCH和DELETE。

盡管如此,許多開發(fā)人員還是傾向于濫用GET和POST或PUT和PATCH。通常,我們看到開發(fā)人員使用POST請求來檢索數(shù)據(jù)。此外,我們看到開發(fā)人員使用PUT請求來替換資源,而他們只想更新該資源的單個字段。

確保使用正確的HTTP方法,因為這將為使用你的RESTful API的開發(fā)人員增加很多混亂。最好是堅持使用預定的準則。

2.命名約定

了解RESTful API命名約定將對你有組織地設(shè)計API有很大幫助。根據(jù)你服務的資源設(shè)計一個RESTful API。

例如,你的API管理著作者和書籍(是的,一個經(jīng)典的例子)?,F(xiàn)在,我們要添加一個新作者或訪問一個ID為 3 的作者。你可以設(shè)計下面的路由來達到這個目的:

  • api.com/addNewAuthor
  • api.com/getAuthorByID/3

想象一下,一個API承載了許多資源,每個資源都有許多屬性。可能的端點列表將變得無窮無盡,而且對用戶不是很友好。所以我們需要一種更有條理和標準化的方式來設(shè)計API端點。

RESTful API最佳實踐描述了端點應以資源名稱開頭,而HTTP操作則描述操作?,F(xiàn)在我們得到:

  • POST api.com/authors
  • GET api.com/authors/3

如果我們想訪問ID為 3 的作者曾經(jīng)寫過的所有書籍怎么辦?對于這種情況,RESTful API也有解決辦法:

  • GET api.com/authors/3/books

最后,如果您要為ID為 3 的作者刪除ID為 5 的書,該怎么辦?同樣,讓我們遵循相同的結(jié)構(gòu)化方法來形成以下端點:

  • DELETE api.com/authors/3/books/5

簡而言之,利用HTTP操作和資源映射的結(jié)構(gòu)化方式來形成易于理解的端點路徑。這種方法的最大優(yōu)點是,每個開發(fā)人員都了解RESTful API的設(shè)計方式,他們可以立即使用API,而不必閱讀你的每個端點的文檔。

3.使用復數(shù)資源

資源應始終使用其復數(shù)形式。為什么?假設(shè)你要檢索所有作者。因此,你將調(diào)用以下端點:GET api.com/authors。

當你讀取請求時,你無法判斷API響應是否只包含一個或所有作者。因此,API端點應該使用復數(shù)資源。

4.正確使用狀態(tài)碼

狀態(tài)碼在這里不只是為了好玩,它們有一個明確的目的,狀態(tài)碼通知客戶端請求的成功。

最常見的狀態(tài)碼類別包括:

  • 200(OK):請求已成功處理并完成。
  • 201(Created):指示成功創(chuàng)建資源。
  • 400(Bad Request):代表客戶端錯誤。也就是說,請求的格式不正確或缺少請求參數(shù)。
  • 401(Unauthorized):未授權(quán),你嘗試訪問你沒有權(quán)限的資源。
  • 404(Not Found):請求的資源不存在。
  • 500(Internal Server Error):內(nèi)部服務器錯誤,服務器在執(zhí)行請求期間引發(fā)異常。

狀態(tài)碼的完整列表可以在Mozilla Developers找到。

5.遵循相同約定

最常見的是,RESTful API提供JSON數(shù)據(jù),因此,應遵循camelCase大小寫慣例。但是,不同的編程語言使用不同的命名約定。

6.如何處理搜索,分頁,過濾和排序

搜索,分頁,過濾和排序等操作并不代表單獨的端點。這些操作可以通過使用隨API請求提供的查詢參數(shù)來完成。

例如,讓我們檢索按名稱升序排列的所有作者。你的API請求應如下所示:api.com/authors?sort=name_asc。

此外,我想檢索一個名稱為“ Michiel”的作者。該請求看起來像這樣 api.com/authors?search=Michiel

幸運的是,許多API項目都帶有內(nèi)置的搜索、分頁、過濾和排序功能。這將為你節(jié)省很多時間。

7.API版本控制

我不常看到這一點,但這是對你的API進行版本調(diào)整的最佳實踐。這是一種有效的方式來向你的用戶傳達重大的變化。

通常,API的版本號包含在API URL中,例如:api.com/v1/authors/3/books

8.通過HTTP標頭發(fā)送元數(shù)據(jù)

HTTP標頭允許客戶端隨其請求發(fā)送其他信息。例如,Authorization 標頭通常用于發(fā)送身份驗證數(shù)據(jù)以訪問API。

你可以在此處找到所有可能的HTTP標頭的完整列表。

9.限速

速率限制是控制每個客戶端請求數(shù)量的一種有趣方法。這些是服務器可能返回的速率限制標頭:

  • X-Rate-Limit-Limit:告訴客戶端在指定時間間隔內(nèi)可以發(fā)送的請求數(shù)。
  • X-Rate-Limit-Remaining:告訴客戶端在當前時間間隔內(nèi)仍可以發(fā)送多少個請求。
  • X-Rate-Limit-Reset:告訴客戶端速率限制何時重置。

10.有意義的錯誤處理

如果出現(xiàn)問題,請務必向開發(fā)人員提供有意義的錯誤消息,這一點很重要。例如,Twilio API返回以下錯誤格式:

{
  "status": 400,
  "message": "Resource books does not exist",
  "code": 24801,
  "more_info": "api.com/docs/errors/24801"
}

在此示例中,服務器返回狀態(tài)代碼和人類可讀的消息。此外,還返回內(nèi)部錯誤代碼,供開發(fā)人員查找特定錯誤,這使開發(fā)人員可以快速查找有關(guān)該錯誤的更多信息。

11.選擇正確的API框架

存在許多用于不同編程語言的框架,選擇一個支持RESTful API最佳做法的框架非常重要。

對于Node.js,后端開發(fā)人員喜歡使用Express.js和Koa,而對于Python,F(xiàn)alcon是一個不錯的選擇。

12.文檔化你的API

最后,寫文檔!我不是在開玩笑,這仍然是傳遞你新開發(fā)的API知識最簡單的方法之一。

盡管你的API遵循RESTful API列出的所有最佳實踐,但仍然值得你花時間記錄各種元素,比如API處理的資源或應用于服務器的速率限制。

想想你的其他開發(fā)人員,文檔大大減少了學習API所需的時間。

13.把事情簡單化!

不要讓你的API過于復雜,保持資源簡單。正確定義你的API處理的不同資源,將幫助你在未來避免資源相關(guān)的問題。定義你的資源,還要準確定義它的屬性和資源之間的關(guān)系。這樣一來,如何連接不同的資源就沒有爭議的空間了。

分享到:
標簽:RESTful API
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定