溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是REST API?REST API的工作原理是什么?

發(fā)布時間:2020-06-08 17:53:42 來源:億速云 閱讀:630 作者:Leah 欄目:云計算

什么是REST API?REST API的工作原理是什么?這些問題可能是我們日常工作會見到的。通過這些問題,希望你能收獲更多。下面是揭開這些問題的詳細內容。

首先要理解REST是Representational State Transfer 的縮寫,簡單地說它是Web應用程序或者移動應用程序、或者智能手表、或者任何使用數據訪問的接口。

當客戶端提交請求時,在這種情況下得到一個資源,REST API 接收該請求,標識所請求的資源,找出哪些數據需要聚集、什么格式、數據匹配的創(chuàng)建一個表示請求的格式,包括像resource ID、指向可用動作的Hyperlinks 等,回應多媒體格式的響應發(fā)送,并將其發(fā)送回客戶端??蛻舳私邮諗祿⑵浣馕鰹橛幸饬x的內容,而REST API則等待下一個請求。

簡單而言,客戶端發(fā)出請求,REST API 接收請求、收集和解析數據,并將數據和響應標頭返回給客戶端。

為了更好的理解REST,我們先來分解一下REST的6個約束條件:

1.Client-Server架構,這個約束確保了客戶端管理用戶界面,而服務器端管理數據存儲,簡而言之,我們將內容與它的交互完全分離。

  1. 無狀態(tài)性,在請求之間,補鞥呢在服務器上存儲客戶端上下文或者信息(即狀態(tài)),客戶端負責跟蹤自己的會話狀態(tài),從客戶端發(fā)送的所有請求必須是自包含和完整的,如果客戶端的會話狀態(tài)是相關的,則必須將其請求一起發(fā)送,如果服務器需要存儲該狀態(tài),則必須在特定時間將其傳遞到數據庫或者類似服務。
  2. 可緩存性,緩存是Web體系結構和性能優(yōu)化的關鍵部分,所有REST響應必須被清楚地標記為可緩存或者不可緩存,以確保緩存在客戶端按預期工作。
  3. 分層系統(tǒng),系統(tǒng)必須設計成客戶端不能知道它是直接連接到服務器還是連接到鏡像等中介,這樣可以確??缮炜s性,也有助于安全性。
  4. 按需編碼,允許服務器以客戶端JavaScript和已編譯組件的形式向客戶端傳輸可執(zhí)行的代碼,以擴展和自定義功能,這是REST不太常見的用法。
  5. 統(tǒng)一接口,必須在請求中使用資源標識,在Web上的REST系統(tǒng)中,URI用于發(fā)送請求,該URI將指定它要查找的資源,這里的關鍵是服務器上的數據,REST 返回的是該資源的一種表現,它可以具有與服務器資源不同的格式,所以,雖然資源數據可以作為表存儲在我的SQL中,但返回可能是JSON或者XML設置HTML,接下來,一旦客戶端擁有了資源的表示,它還可以修改或者刪除該資源。第三,統(tǒng)一接口必須發(fā)布描述信息,這適用于發(fā)送和接收REST數據,如果接收JSON,則響應信息的媒體類型將設置為JSON,沒有這些信息,就無法可靠地解析數據。第四,統(tǒng)一接口必須使用超媒體作為應用狀態(tài)的引擎,這是一種復雜的說法,一旦客戶端訪問REST資源,它就能夠通過提高的超鏈接發(fā)現所有可用的資源和方法。

換句話說,REST服務描述了它自己對每個返回資源的使用,當且僅當基于Web的API滿足這6個約束時,就可以認為它是RESTful API。

現在我們將從一個基本的Get請求開始,一個Application/json格式體的例子如下:

{
"<name>": "<value>"
}

樣例:如果你想使用類似下方的請求頭字段為Azure Resource Manager provider 發(fā)送一個Https get的請求方法

GET /subscriptions?api-version=2014-04-01-preview HTTP/1.1
Authorization: Bearer <bearer-token>
Host: management.azure.com

看完上述內容,你們對REST API有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI