咱们在 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 容许分层零碎架构:客户端可能只与零碎中的一个服务器通信,而其余服务器执行身份验证和数据存储等性能。客户端无奈判断它是在与终端零碎还是中介进行通信。
- 按需代码:可选地,REST 申请能够在必要时返回逻辑或可执行代码。
遵循上述准则的 API(应用程序编程接口)称为 REST(或 RESTful)API。
OData vs REST: What is OData?
依据 OData 网站的说法,OData(凋谢数据协定)“定义了一组用于构建和应用 RESTful API 的最佳实际。OData 可帮忙您在构建 RESTful API 的同时专一于业务逻辑,而无需放心定义申请和响应标头、状态代码、HTTP 办法、URL 约定、媒体类型、无效负载格局、查问选项等的各种办法。”
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 格局传输。