SAP OData介绍

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的基本架构。

猜你喜欢

转载自blog.csdn.net/eksbobo/article/details/78803659