我们在 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 格式传输。

OData API 和 Restful API 这两个概念的区别和联系相关推荐

  1. 如何区别API、REST API、RESTful API和Web Service之间的异同

    当你看到API接口你会想起什么?是接口.第三方调用.还是API文档?初看你可能会觉得这太熟悉了,这不是系统开发日常系列吗?但你仔细想一想,你会发现API的概念在你脑海里是如此的模糊.如何你通过搜索引擎 ...

  2. 事件的独立和事件互不相容两个概念的区别

    实在是对这个感冒了,随从网上拉了一篇资料,免得下次又忘了. 要真正的解决这个问题,必须首先牢牢记住他们的定义. 什么事件的独立? 事件A,B独立是指这两个事件之间的概率满足一个等式:P(AB)=P(A ...

  3. 架构师之路 — API 经济 — RESTful API

    目录 文章目录 目录 REST REST 的优势 REST 的不足 RESTful API HATEOAS REST 早古时期,软件和网络是两个不同的领域,前者围绕着单机环境展开,而后者则研究系统之间 ...

  4. 使用ASP.NET Web API构建Restful API

    目录 介绍 这种方法有什么好处? Restful约定 构建API 测试API 一点困惑: 最佳实践: 数据传输对象(DTO) Automapper IHttpActionResult 使用Web AP ...

  5. restapi是什么意思_用人类语言解释:REST API 与 RESTful API

    API,应用程序接口,也可以叫应用程序界面,或者简称为应用接口.应用程序的设计可以相当复杂,但最终的用户并不需要知道应用程序的内部到底是如何工作的,你只需要给用户提供一些操作接口,再告诉用户怎么用这些 ...

  6. laravel android api,Laravel RESTful API与Android应用程序

    我正在使用Laravel 5 Framework开发一个Android应用程序和一个RESTful API. 我在登录活动时遇到了麻烦:流程是用户要求输入第8个字符的代码,并且服务器网络向他发送了一条 ...

  7. 一个基于Spring Boot的API、RESTful API项目骨架

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:简单的土豆 www.jianshu.com/p/99fcea ...

  8. 你值得拥有!一个基于 Spring Boot 的API、RESTful API 的项目

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:腾讯推出高性能 RPC 开发框架 个人原创100W+访问量博客:点击前往,查看更多 前言 最近使用Spring ...

  9. 一个mapper接口有多个mapper.xml 文件_爱了!分享一个基于Spring Boot的API、RESTful API项目种子(骨架)!...

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! 1.☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 2.☞ <Jav ...

最新文章

  1. 数据结构(07)— 线性顺序表基本操作
  2. 火爆股市的元宇宙,究竟关VR/AR什么事?
  3. mysql 备库 hang住_mysql主键的缺少导致备库hang住
  4. openstack--1--基础环境搭建
  5. 硅谷企業面臨新的反壟斷枷鎖
  6. mysql 包 过程 job_mysql job实例全过程
  7. linux的基础知识——捕捉SIGCHLD、信号传参,中断系统调用
  8. 在玩客云上部署code-server
  9. 2.6 HDFS存储原理
  10. 小型超市管理系统的设计与实现 毕业设计-附源码011136
  11. matlab 矩阵卷积
  12. VBA代码宝+代码助手
  13. java 项目的部署方案
  14. 日记记事本java实训,黑马学习日记  GUI实现简单记事本功能
  15. 英魂之刃后台用Java,《英魂之刃》系统操作说明
  16. 什么是虚拟 DOM ?
  17. createCaptureSession()
  18. Microsoft Word 教程:如何在 Word 中查找和替换文本?
  19. 【北邮国院大三上】大三上高编/互联网协议/电信系统笔记
  20. javaScript 美化上传文件框(加预览移除效果)

热门文章

  1. Mybatis中重要的小知识点
  2. 系统分析与设计结对项目———Wordcount
  3. Java中方法参数的传递
  4. vmware-tools安装
  5. 数据中心两种常用流量模型运用mininet的实现
  6. Android小数和整数相互转换
  7. AOP技术基础(转)
  8. [转帖] 固定硬盘接口 U.2和M.2
  9. linux建立与删除目录
  10. OLEDB不使用SQL语句直接打开数据表