OData介绍

OData是一种非常简单的接口协议,它有着简单的结构以及简单的操作方式。当我们提及接口的方式,目前首推的是RESTful,REST是Representational State Transfer的缩写,它是一种轻量的接口方式(和传统的SOAP的接口方式相比)。注意,REST不是协议,只是开发接口中的术语,这种接口方式有以下一些特点:

  • 无状态交互(Statelessness)

    请求不会在服务端存储,任何的请求包含了所有服务所需要的信息。

  • 可缓存(Cacheability)

    请求的返回信息可以定义是否需要缓存。

  • 层级系统(Layered System)

    客户端不清楚访问的最终系统,有可能是直接连接,也可能是中间系统。

  • 统一接口(Uniform Interface)

    统一的接口方式可以将客户端和服务端解耦。

  • 按需编程(Code on demand)

    服务可以根据客户端传输的请求内容定制化。

REST请求的通用操作:

  • GET

    客户端从服务端获取数据。

  • POST

    客户端传送信息给服务端进行创建的操作或者修改的操作。

  • PUT

    客户端传送信息给服务端进行创建的操作或者修改的操作。

  • DELETE

    删除服务端的数据操作

  • PATCH

    更新某一条数据中的某个属性。

OData的定义

OData是Open Data Protocol的缩写,是一种基于REST的数据访问方式。目前这种协议有微软进行维护和发布。

详细的OData的介绍请参考:www.odata.org

OData 协议遵循以下五种设计原则

  • 数据多样性存储

    在一个服务里面可以定义多种数据的存储。

  • 向下兼容

    客户端和服务端可以使用不同版本的OData服务,每个服务都可以向下兼容。

  • REST原则

    遵循上文中提到的REST原则。

  • 容易扩展

    如果需要额外的服务,应该能够进行简单的扩展。

  • 简单

实施OData

如果需要实施OData服务,需要完成以下四个部分:

  • OData模型

    定义数据结构,一般发生在后端系统。

  • OData协议

    支持CRUDQ(创建,读取,修改,删除,查询)功能,数据的传输可以使用XML或者JSON。

  • OData客户端库

    保证了客户端能够使用库函数方便的访问OData服务。注意,客户端库并不是必须的,但是尽量有,这样可以节省大量的编码工作。

  • OData服务

    可以最终被客户端访问的服务。

OData服务的结构

  • 服务文档(Service Document)
  • 服务元结构文档(Service Metadata Document)

以上两种文档包含了:

  • 实体(Entity)
  • 实体类型(Entity Type)
  • 实体集合(Entity Set)
  • 属性(Property)
  • 导航属性(Navigation Property)
  • 关联(Association)

OData的操作

  • 创建

    HTTP请求类型: POST

    成功返回:201

  • 读取(包括单条读取-read_entity,多条读取read_entityset)

    HTTP请求类型:GET

    成功返回:200

  • 更新

    HTTP请求类型:PUT

    成功返回:204

  • 删除

    HTTP请求类型:DELETE

    成功返回:204

  • 查询

    HTTP请求类型:GET/POST

    成功返回:200/201

    查询操作清单:

    操作 查询方式
    筛选 $filter
    排序 $orderby
    客户端换页 $top,skip,inlinecount
    数据量 $count
    嵌入内容 $expand
    格式化 $format

OData 在SAP中的方案

SAP对于标准的OData进行了扩展,特别是在对于字段属性定义上,如果熟悉SAP系统的人都知道SAP系统表中的字段定义往往很难理解,SAP的扩展中就包括了使用字段的描述作为OData的属性进行命名。

SAP对于OData的支持扩展包括:

  • HTTP返回码可以自定义
  • CRUD的支持
  • CUD多媒体文件的支持
  • 序列化处理
  • 深层结构处理
  • Merge/patch的支持
  • Paging,filter的扩展支持

OData在SAP各种产品中的使用:

  • SAP Fiori
  • SAP Jam
  • SAP Netweaver Portal
  • SAP HANA

总结

本文简单的过了一下OData,也大概看了一下SAP中OData的使用,在接下来的一篇文章中会介绍Gateway的基本架构。

作者:翱翔云天SAP
链接:https://www.jianshu.com/p/e254fd74cff9
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

OData介绍 (SAP)相关推荐

  1. 【易拓大咖说】|一文讲述OData 在 SAP 生态系统中的重要性

    今天将分享 OData 在 SAP 生态系统中的重要性,解释如何将 OData 与 SA P 的服务集成,以及如何创建和使用 OData 服务,以帮助大家更好的使用数据连接器,一起来看看吧! 01 什 ...

  2. OData与SAP Annotation

    1. 简介 在博客<Odata基础概念详解>中,介绍了OData中的各种基础概念.一个重要的概念就是Metadata Document (元结构文档),在Metadata Document ...

  3. sap各模块介绍 SAP模块顺口溜, 帮你对SAP有个大致的了解

    sap各模块介绍 SAP模块顺口溜, 帮你对SAP有个大致的了解                 SAP是庞大的,模块是多多的,功能是强大的,搞懂是没门的. SD是灵巧的,五脏是俱全的,满足是不能的, ...

  4. 一个介绍SAP git-enabled CTS的视频

    Jerry曾经写过一篇公众号文章:使用abapGit在ABAP系统和SAP云平台ABAP环境之间进行代码传输,介绍了如何通过abapGit将ABAP代码从OP系统导入到SAP云平台.最近在SAP社区上 ...

  5. 给硬件工程师介绍SAP Cloud for Customer

    因为客户的硬件工程师以前完全没有接触过SAP系统,所以给他们讲C4C,适合讲入门级的内容.结合这次项目,因为SAP要确保我们的人从现场撤了之后,客户仍然可以自行在C4C里下单触发整个流程,因此我在介绍 ...

  6. 给具有SAP传统产品ABAP开发经验的朋友介绍SAP C4C

    给项目经理介绍完SAP C4C之后,我们SAP内部的开发人员聚在一起,大家对这个项目的整体架构设计进行review. 因为大家工作的产品不同,所以先要给所有人做简要的介绍. 轮到我的时候,我事先了解到 ...

  7. 给产品经理背景的朋友介绍SAP C4C

    我做了三次C4C相关的演讲,受众依次是创新项目的产品经理,SAP内部其他产品线的开发人员和客户放方相关人员. 我的同事C是这个项目的项目经理,他是产品经理出身. 这个项目的背景是SAP C/4HANA ...

  8. SAP PM (工厂维护)模块介绍 - SAP入门必看

    (本文中的PM都是这个意思,不要和Project Manager搞混了),大大小小的文档上都把它翻译成工厂维护,意译过来应该是设备维护.单单讲PM内容较少,现在比较流行 EAM(Enterprise ...

  9. 通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧

    本文通过一些实际的例子,介绍 ABAP Repository Information System 的使用技巧. 顾名思义,ABAP Repository Information System,是一个 ...

最新文章

  1. java触发器如何创建表_在java 中执行触发器代码、创表语句
  2. 从汉诺塔讲递归的思考方式
  3. Self Service Password (SSP)
  4. java ee 8 api_Java EE 8安全性API:概述
  5. CentOS7服务管理(重启,停止,自动启动命令)
  6. 0和5(51Nod-1433)
  7. 浙大PAT CCCC L3-014 周游世界 ( 最短路变形 )
  8. BZOJ2142: 礼物
  9. pytorch_pix2pix之argparse
  10. php基础-php基本语法
  11. 移动Web界面样式-CSS3
  12. cad墙线打断lisp_autocad 2010怎么打断墙线?
  13. idea 和tomcat 中文乱码问题
  14. Electron学习笔记(一) 配置, 创建, 设置, 监听
  15. 下面哪个不是python合法的变量名_下面哪个不是Python合法的标识符
  16. 量子计算机研制成功图片,光量子计算机的曙光:科学家成功研制出量子光源
  17. 中外历史纲要(上)第一单元梳理(部分)
  18. 数组与数字之间的转换
  19. 25张漂亮的微距摄影作品欣赏
  20. 【56期分享】4款毕业答辩PPT模板免费下载

热门文章

  1. day19TreeSet类
  2. python绘制象棋棋盘图片_Python开发象棋小游戏(绘制棋盘)
  3. #1045 无法登录 MySQL 服务器(实际上是我第一次使用,不知道密码)
  4. mysql 列转行union all_SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理] | 学步园...
  5. java计算机毕业设计猫咪伤患会诊复查医疗平台源代码+数据库+系统+lw文档
  6. Kubernetes控制器和service
  7. android方法入口,Android App多个入口的实现方法
  8. Bootstrap相关优质项目必备网址
  9. Python的PyAutoGUI库整理中文文档,可以让所有GUI都实现自动化。
  10. c# 导出excel 数字太长而显示为科学计数法的解决方法