OData API 和 Restful API 这两个概念的区别和联系
我們在 SAP API Business Hub 里能看到 OData,SOAP 和 Restful 三種“不同”類型的 API:
它們之間到底有什么區別和聯系?
OData vs REST: What is REST?
REST(REpresentational State Transfer)是一種軟件架構風格,它定義了如何使用 HTTP 協議在兩個不同的系統之間發送消息。 REST 最初由 Roy Fielding 于 20 年前開發,現已發展成為用于在萬維網上交換信息的最流行的架構。
REST 標準概述了 Web 服務的 6 種不同原則或架構約束:
-
統一接口:REST 系統中的所有組件必須遵循相同的規則和接口才能相互通信。每個資源都由一個 URI(統一資源標識符)唯一標識。
-
客戶端-服務器:REST 將負責存儲和發送信息的服務器與負責獲取信息和適當使用信息的客戶端分開。這種分離使雙方更加獨立和可擴展。
-
無狀態:使用 REST 發出的每個請求都是無狀態的:它包含服務器執行請求所需的所有信息。請求完成后,服務器不需要存儲參數或狀態。例如,如果客戶端請求訪問受限資源,則客戶端必須在每次請求時將其身份驗證令牌發送到服務器。
-
可緩存:REST 中的客戶端和服務器都可以緩存資源,有助于減少流量并提高性能。
-
分層系統:REST 允許分層系統架構:客戶端可能只與系統中的一個服務器通信,而其他服務器執行身份驗證和數據存儲等功能??蛻舳藷o法判斷它是在與終端系統還是中介進行通信。
-
按需代碼:可選地,REST 請求可以在必要時返回邏輯或可執行代碼。
遵循上述原則的 API(應用程序編程接口)稱為 REST(或 RESTful)API。
OData vs REST: What is OData?
根據 OData 網站的說法,OData(開放數據協議)“定義了一組用于構建和使用 RESTful API 的最佳實踐。 OData 可幫助您在構建 RESTful API 的同時專注于業務邏輯,而無需擔心定義請求和響應標頭、狀態代碼、HTTP 方法、URL 約定、媒體類型、有效負載格式、查詢選項等的各種方法?!?/p>
OData 最初由 Microsoft 創建,由非營利組織 OASIS(結構化信息標準促進組織)標準化。 IBM、SAP 和 Salesforce 等企業技術公司都在其內部 IT 環境中使用了 OData。
REST 是 OData 最重要的組件技術。根據 OData 3.0 標準,OData 用戶應遵循 REST 原則,“除非有充分且具體的理由不這樣做”。
OData 標準還定義了用于響應 REST 請求傳輸數據的數據模型。 OData 支持兩種不同的數據傳輸協議:基于 XML 的 Atom 格式(用于發布和編輯 Web 資源)和 JSON(用于以人類可讀的方式存儲數據)。
最后,OData 包括有關如何執行操作(例如跟蹤更改、定義可重用程序和發送多個(批處理)REST 請求)的指南。
二者區別
盡管如此,OData 和 REST 之間的區別如下:
REST 是一種通過 HTTP 協議交換信息的架構風格。 REST 標準定義了任何 REST API 都必須遵守的 6 條原則(1 條可選)。
OData 構建在 REST 框架之上,以定義構建 REST API 的最佳實踐,包括 HTTP 消息格式、如何查詢 API 等。 盡管 OData 鼓勵用戶始終遵循 REST 原則,但如果有令人信服的理由,可以放寬此要求。 此外,OData 指定數據應以 Atom 或 JSON 格式傳輸。
總結
以上是生活随笔為你收集整理的OData API 和 Restful API 这两个概念的区别和联系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第四章 采购与供应链管理中的利益相关者
- 下一篇: SAP 电商云 Spartacus UI