RESTful API是利用HTTP請求訪問或使用資料的應用程式介面(API)的體系結構樣式,這些資料可用于GET,PUT,POST和DELETE資料型別,這些資料型別指的是與資源相關的操作讀取、更新、創建和洗掉,

網站的API是允許兩個軟體程式相互通信的代碼,API詳細說明了開發人員撰寫從作業系統或其他應用程式請求服務程式的正確方法,
RESTful API(也稱為RESTful Web服務或REST API)基于表示性狀態轉移(REST),它是Web服務開發中經常使用的一種體系結構樣式和通信方式,
REST技術通常優于其他類似技術,這是因為REST使用較少的帶寬,使其更適合高效的互聯網使用,RESTful API也可以用JavaScript或Python之類的編程語言來構建,
瀏覽器使用的REST可以被視為互聯網語言,隨著云使用量的興起,云消費者正在使用API公開和組織對Web服務的訪問,REST是構建API的邏輯選擇,它允許用戶在分布式環境中靈活地連接、管理和互動云服務,
RESTful API如何作業
RESTful API使用分解事務來創建一系列小模塊,每個模塊處理事務的一個底層部分,這種模塊化為開發人員提供了很大的靈活性,但是對于開發人員來說,從頭開始設計REST API是一個挑戰,目前,有幾家公司提供了供開發人員使用的工具,例如本文演示工具EOLINKER:www.eolinker.com,

RESTful API使用命令來獲取資源,資源在任何給定時間戳下的狀態稱為表示資源(resource representation),RESTful API使用RFC 2616協議定義的現有HTTP方法,例如:
GET檢索資源;
PUT更改狀態或更新資源的狀態,該資源可以是物件,檔案或塊;
POST創建該資源;
DELETE洗掉資源,
使用REST,網路化組件是用戶請求訪問的資源,所有呼叫都是無狀態的;RESTful服務在執行之間不能保留任何內容,
REST API支持的資料格式包括:
application/ json
application/ xml
application/ x-www-form-urlencoded
multipart/form-data

用途
由于呼叫是無狀態的,因此REST在云應用程式中很有用,如果出現故障,無狀態組件可以自由地重新部署,它們可以擴展適應負載變化,因為任何請求都可以定向到組件的任何實體,下一個事務不必記住任何保存的內容,這使得REST更適合用于Web,RESTful模型在云服務中也很有用,因為通過API系結到服務是控制URL解碼方式的問題,
RESTful API設計和架構約束
RESTful API設計由Roy Fielding在2000年的博士學位論文中定義,為了成為真正的RESTful API,Web服務必須遵守以下六個REST體系結構約束:
使用統一介面(UI),資源應該通過單個URL進行唯一標識,并且只有通過使用網路協議的底層方法(例如帶HTTP的DELETE,PUT和GET),才能對資源進行操作,
基于客戶端服務器,客戶端和服務器之間應該要清晰劃分,UI和請求收集問題是客戶端的領域,資料訪問、作業負載管理和安全性是服務器的領域,客戶端和服務器的這種松散耦合使得彼此之間可以獨立開發,
無狀態操作,所有客戶端-服務器操作都應該是無狀態的,并且所需的任何狀態管理都應該在客戶端進行而不是服務器上,
RESTful資源快取,除非明確指出不可能進行快取,否則所有資源都應允許快取,
分層系統,REST支持由多層服務器組成的體系結構,
按需編碼,大多數時候,服務器會以XML或JSON的形式發送回資源的靜態表示,但是,必要時服務器可以向客戶端發送可執行代碼,
常見的REST API挑戰
除了設計和體系結構的約束外,個人還必須面對REST API的一些挑戰,可能具有挑戰性的一些概念可能包括:
端點一致性,
API版本控制,
回應時間長,資料太多,
安全性,需要注意很多方面,包括使用以下方面:
HTTPS;
阻止來自未知IP地址和域的訪問;
驗證URL;
阻止意外的大有效載荷;
記錄請求;
檢查故障,
身份驗證,使用常見的身份驗證方法,例如HTTP基本身份驗證(允許使用base64編碼的用戶名:密碼字串),API密鑰,JSON Web Token和其他訪問令牌,例如,OAuth 2.0適用于訪問控制,
API測驗,測驗程序中可能具有挑戰性的部分包括:
初始設定
架構更新
測驗引陣列合
序列API呼叫
驗證測驗引數
系統集成
定義錯誤代碼和訊息,
對于錯誤代碼,使用標準HTTP錯誤代碼是更常見的做法,錯誤處理除了決議正文或檢查錯誤外,可能沒有其他方法來區分回應是否成功,
隨著時間推移的,開發人員開始使用RESTful API,并使用它們為網站和應用程式添加功能,如今,REST API被認為是“互聯網的骨干”,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/254708.html
標籤:其他
