SAP FIORI for iOS - OData使用 - Northwind OData Model

题外话: 这几天因为家里的事情,导致没来得及更新SAP FIORI for iOS系列的文章,总是感觉有很多事情没有做,而且有了一些拖延的征兆.今天忙好了工作的事情,赶紧把文章补起来.

前言

在前面几篇文章大概介绍了SAP Cloud Platform SDK如何开发SAP FIORI for iOS的应用,介绍的非常基础. 遵循以下顺序介绍:

  • SAP Cloud Platform SDK的简单介绍
  • SAP Cloud Platform SDK的基本框架
  • 使用SAP Cloud Platform SDK assistant 创建一个基本的应用,使用 SAP 提供的 demo 的 odata service
  • 创建一个 task manager 的应用,主要介绍 SAPFiori 前端组件的使用

接下来, 将使用 northwind odata service, 来搭建一个应用,在本应用的开发过程中,首先需要了解 northwind odata model,本文将进行简单的介绍. 其中包括了一些 odata service 的操作,比如查询,展开等等.

OData 简介

OData是一个协议,规定公开数据的Web服务的特点。下面这段话是OData的定义:

Open Data Protocol (开放数据协议,OData)是用来查询和更新数据的一种Web协议,其提供了把存在于应用程序中的数据暴露出来的方式。OData运用且构建于很多 Web技术之上,比如HTTP、Atom Publishing Protocol(AtomPub)和JSON,提供了从各种应用程序、服务和存储库中访问信息的能力。OData被用来从各种数据源中暴露和访问信息, 这些数据源包括但不限于:关系数据库、文件系统、内容管理系统和传统Web站点。

一些公开的 odata 服务:

  • http://services.odata.org/WebSite/OData.svc/
  • http://services.odata.org/OData/OData.svc/
  • http://services.odata.org/Northwind/Northwind.svc/

本文将以 northwind 的 odata 服务为例.

Northwind Odata 服务模型

下图为该服务模型,在后续的练习中,我们会用到几个 entity 及其之间的关系.


SAP FIORI for iOS - OData使用 - Northwind OData Model_第1张图片

基本语法

  • Metadata
    http://services.odata.org/Northwind/Northwind.svc/$metadata
    SAP FIORI for iOS - OData使用 - Northwind OData Model_第2张图片

    基本组成:
    • EntityType
      定义 entity 的结构,有点类似于 ABAP 中 SE11定义的结构,主要定义了这个 entity 中有哪些字段,每个字段是什么数据类型.
    • EntitySet
      可以理解为按照 entityType 定义的表,通过表可以存储数据或者批量访问数据.
    • Association
      定义为 entity 和 entity 之间的关系.
  • 查询
    http://services.odata.org/Northwind/Northwind.svc/ + entitySet 名称.
    比如我们想查看orders,输入以下 URL:
    http://services.odata.org/Northwind/Northwind.svc/Orders?$format=json
    然后可以使用 Json Editor 来查看内容:
    SAP FIORI for iOS - OData使用 - Northwind OData Model_第3张图片
  • 筛选
    逻辑运算:

    • Eq: Equal
    • Ne: Not equal
    • Gt: Greater than
    • Ge: Greater than or equal
    • Lt: Less than
    • Le: Less than or equal
    • And: Logical and
    • Or: Logical or
    • Not: Logical negation
      例如:选择 customer 名字中包含Alfreds的客户列表:
      http://services.odata.org/Northwind/Northwind.svc/Customers?$filter=substringof(%27Alfreds%27,%20CompanyName)%20eq%20true&$format=json
      查看结果:
      SAP FIORI for iOS - OData使用 - Northwind OData Model_第4张图片
  • 扩展
    将 entitySet 中的有关联关系的某个 entity 扩展显示:
    举例:如果不使用扩展:
    http://services.odata.org/OData/OData.svc/Categories?$format=json

    SAP FIORI for iOS - OData使用 - Northwind OData Model_第5张图片

    使用扩展
    http://services.odata.org/OData/OData.svc/Categories?$expand=Products&$format=json

    SAP FIORI for iOS - OData使用 - Northwind OData Model_第6张图片

总结

通过以上的简单介绍,大家对 Odata 有个简单的了解,详细的参考文档请到http://www.odata.org/documentation/odata-version-2-0/uri-conventions/查看.

在后续的一段时间里,我们将使用 Northwind 的 Odata 模型作为开发的数据源,在 UI 显示的内容将通过此服务获取.

因为该服务不支持修改操作,如果开发到需要增删改的动作时,会使用另外一个 Odata url 作为数据源.

你可能感兴趣的:(SAP FIORI for iOS - OData使用 - Northwind OData Model)