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

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

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

設計RESTful API的5個最佳實踐

 

RESTful%20API無處不在,比任何其他API體系結構都為現代世界提供了更多支持。%20根據ProgrammableWeb的研究,REST占API的80%。%20這些API的構建和結構方式可以在當今競爭異常激烈的世界中成敗一家公司。%20設計不良的API可能難以使用,在最需要它們時可能會失敗,并且是尋找敏感數據的黑客的重要目標。%20另一方面,利用最佳實踐精心設計的API使開發變得輕而易舉,吸引了新客戶,并在用戶之間建立了信心,從而可以提高保留率。

什么是RESTful%20API?

REST是REpresentational%20State%20Transfer的首字母縮寫,描述了用于創建分布式Web服務的體系結構樣式。%20REST允許用戶使用標準的HTTP請求來遠程調用代碼并接收響應。%20REST與其他協議相比有幾個優點:

·%20它將數據存儲問題與用戶界面分開,這意味著運行API的后端服務器可以處理所有邏輯以訪問數據庫并處理數據,然后再以統一的結構化方式將其返回給用戶。%20這種一致的數據訪問和結構使開發人員可以輕松構建前端應用程序,從而輕松地將您的應用程序前端移植到其他平臺。

·%20REST%20API支持緩存常用的靜態資源,以提高性能。

·%20REST是無狀態的,因此完成請求的所有信息都包含在請求中。%20通過消除對服務器端狀態同步邏輯的需求,這簡化了API。%20這也使擴展變得更容易,因為任何服務器都可以處理任何請求而無需跟蹤會話。

(如果構建RESTful%20API對您來說是新手,或者您希望沙盒嘗試這些最佳實踐,請從Heroku中嘗試該參考體系結構,該體系結構易于部署。)

因此,現在,這是構建RESTful%20API的五種最佳實踐。

1.使用錯誤狀態代碼

HTTP已經內置了100多個狀態代碼。使用RESTful%20API中的狀態代碼來傳達一般錯誤對于開發人員來說是天賜的禮物。%20開發人員將能夠立即發現問題,這意味著花費更少的時間編寫解析器來處理所有不同類型的錯誤。%20是否因為會話未登錄而拒絕了請求?%20有一個狀態碼。%20是否缺少資源?%20CRUD服務是否收到請求但無法連接到數據庫?%20這些都有狀態碼,幾乎還有其他常見行為。%20狀態代碼也可以與特定的錯誤消息結合使用,以提供有關失敗請求的詳細信息。

以下是Node.js%20API的一小段代碼,用于說明:

 

該端點通過傳入的用戶ID返回用戶配置文件。 響應請求而發送的狀態代碼可準確告知開發人員發生了什么錯誤,從而使響應更易于處理,并為他們節省了大量時間和麻煩。 開發人員可以根據狀態代碼實現用于處理不同錯誤的例程,而API提供詳細的錯誤信息。 在這種情況下,404錯誤會告訴呼叫者找不到東西。 響應中的JSON會特別告訴調用者它是找不到的用戶ID,而不是錯誤是指向端點還是請求的資源,這是模棱兩可的。

2.好的文檔

文檔是API最重要(也是最被忽略)的方面之一。 正式文檔可以是客戶與產品的第一聯系點,并且是開發團隊是否采用該產品的關鍵因素。 好的文檔看起來干凈,一致,并為開發人員做好充分準備,使其可以快速使用您的API。 有人學習您的API的速度越快,他們開始使用它的速度就越快。 文檔應該具有統一的外觀,并包括所有相關信息:端點,兼容方法(GET,POST,PUT等),哪些參數是可選的和必需的以及預期的數據類型。

這個來自Heroku平臺API文檔的屏幕截圖展示了開發人員所需的完整文檔。 它顯示了已執行的操作,訪問的端點以及使用的HTTP方法。 它還提供了有關可選參數的詳細信息,并向用戶顯示了正確實施的所有示例的工作示例。 樣本響應還說明了如何構造返回的數據。

設計RESTful API的5個最佳實踐

 

Heroku的API文檔干凈,井井有條,可為開發人員提供所需的一切。

3.速率限制和節流

API請求可能會占用大量資源,需要大量的計算能力和存儲空間。如果您不小心,大量連續的并發請求可能會減慢服務器速度甚至使您的DOS慢下來,一種簡單的方法是使用許多可用工具之一,例如express-rate-limit(一種設計為Express的中間件)專門用于以簡單,直觀的方式處理限速。您還可以實現與身份驗證綁定的速率限制邏輯,從而在控制授予每個用戶的權限方面具有更大的靈活性。通過要求用戶進行身份驗證,可以跟蹤每個用戶發送的請求數量,這也使您可以限制或停止這些請求。還可以授予不同的用戶訪問不同的API端點的權限。例如,與普通非特權用戶相比,管理員用戶可以通過API訪問更多信息或更多請求。使用身份驗證的另一個好處是它提供的安全性,使我們進入了下一個最佳實踐。

4.保護API

API必須安全!%20黑客使用自動腳本隨意攻擊服務,因此API需要采取主動安全措施,以保持操作順暢運行并保護敏感數據。%20首先,每個Web應用程序都應具有HTTP嚴格傳輸安全性(HSTS)策略,以確保所有連接均被加密。%20確保連接的安全性可以防止網絡嗅探,中間人攻擊,協議降級攻擊以及通過cookie盜竊進行會話劫持。%20您可能還希望設置和隱藏某些可以利用的標頭,例如那些揭示有關您的API基礎結構的信息的標頭,這些信息可能對攻擊者有用。%20有很多工具可以解決這個問題。%20例如,如果您使用Node.js運行API,則可以使用Helmet.js之類的東西。%20實現此中間件很容易:

 

為防止API泄漏敏感的客戶數據(例如密碼),請編寫單元測試以進行安全性測試。 最后但并非最不重要的一點是,您應該要求身份驗證令牌才能訪問您的API。 這使開發人員可以控制誰有權訪問哪些信息。 通過拒絕冒犯用戶,它還可以使阻止API服務器上的攻擊變得更加容易。

5.使用JSON

API的目的是從公司資源中提供數據。 根據北歐API,通常使用三種格式來返回數據:XML,YAML和JSON。

XML易于人類閱讀,但是數據包含在一組標記標簽中,這些標記迅速增長并且需要額外的帶寬。 開發人員還必須解析標簽的內容才能訪問數據。相比之下,YAML僅占用很少的帶寬,但需要使用外部庫或自定義的解析器和編碼器來處理數據.JSON與XML完美地融合在一起 和YAML一起使用:它是人類可讀的,不需要高帶寬或自定義解析即可將數據移入JAVAScript兼容結構。

結論

使用RESTful API實現這五種做法將使您的API更加易于使用和安全。 具有良好文檔的安全,可靠的API可以提供出色的開發人員體驗,并且更高的易用性將幫助您提高采用率。 此外,這些最佳實踐將使您的代碼保持整潔,操作平穩進行,并使客戶滿意。

(本文翻譯自Michael Bogan的文章《5 Best Practices for Designing RESTful APIs》,參考:
https://medium.com/swlh/5-best-practices-for-designing-restful-apis-42f55cb787d3)

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

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

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

運動步數有氧達人2018-06-03

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

每日養生app2018-06-03

每日養生,天天健康

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

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