SAP Fiori OData 服务

OData 用于定义构建和使用 RESTful API 所需的最佳实践。它可以帮助您发现更改、定义可重用过程的函数和发送批处理请求等。

其中一些重要功能包括:

  • OData 提供了扩展功能,以满足 RESTful API 的任何定制需求。
  • REST 代表 Representational State Transfer,有时拼写为 "REST"。
  • 它依赖于无状态、客户端-服务器、可缓存的通信协议。在几乎所有情况下,都使用 HTTP 协议。
  • REST 被定义为设计网络应用程序的架构风格。
  • OData 帮助您在构建 RESTful API 时关注业务逻辑,而不必担心定义请求和响应头、状态代码、HTTP 方法、URL 约定、媒体类型、PayLoad 格式和查询选项等的方法。
  • OData RESTful API 易于使用。

OData 服务生命周期

OData 服务生命周期包括 OData 服务的跨度。

以下是 OData 服务生命周期中需要考虑的关键步骤:

  • 激活 OData 服务。
  • 维护 OData 服务。
  • 模型和服务的维护,直到元数据缓存的清理。
  • RESTful 应用程序使用HTTP请求发布数据以创建或更新、读取数据和删除数据。REST 将 HTTP 用于所有四个 CRUD(创建/读取/更新/删除)操作。
  • REST 是 RPC(远程过程调用)和 Web 服务等机制的轻量级替代方案。

REST

REST 被定义为 web 服务和远程过程调用的选项。它用于设计网络应用程序。

REST 服务类似于 web 服务,并支持以下功能:

  • 使用防火墙
  • 独立于语言
  • 基于标准
  • 不依赖于平台

REST 架构

下面给出了 REST 架构的组件。

Resources(资源)

在 REST 中,状态和功能都显示为资源(Resources)。资源是 RESTful 设计的关键元素,而不是 RPC 和 SOAP Web 服务中使用的 "方法" 或 "服务"。

REST 中不使用 getProductNamegetProductPrice 之类的 RPC 调用。您可以将产品数据视为资源,此资源应包含所有必需的信息。

Resources 的 web

这意味着单个资源不应包含详细数据,它包含指向其他网页的链接。

客户端 - 服务器

在REST 客户端 - 服务器模型中,一个组件服务器可以是另一个组件客户端。

无连接状态

每个请求都应包含有关与每个客户端的连接的详细信息,并且不应回复以前与同一客户端的连接。

可缓存

协议必须允许服务器明确指定可以缓存哪些资源以及缓存多长时间。

代理服务

为了提高性能和可扩展性,可以使用代理服务器。可以使用任何标准 HTTP 代理。


OData 服务使用 SAP NetWeaver 网关服务生成器

使用 T-Code: SEGW

新窗口将打开。点击 Create Project.

现在,按照以下步骤操作:

  • 输入项目名称,如下图所示。它应该是唯一的,不应该包含任何特殊字符。
  • 输入项目说明,因为它是必填字段。
  • 输入不同的属性,例如项目类型、生成策略。
  • 如果要在本地创建包,请选择包或单击本地对象。

单击本地对象后,Service builder 将创建一个具有空文件夹结构的新项目。所有这些都是使用新项目自动创建的,然后单击保存图标。

现在,在数据模型中创建实体类型,然后展开 Data model → right click → Create → Entity Type。

输入实体类型名称,若要自动创建实体集,请单击 related entity set 复选框选项。

点击选项 Insert row 在数据模型中添加另一个实体类型,并添加如下所示的详细信息。单击保存。

以类似的方式,可以通过右键单击数据模型并输入详细信息或使用 Entity Type 中的 Insert Row 插入行选项来创建实体集。

下一步是定义不同实体之间的关联和关系。可以通过两种方式创建它,即使用向导或使用编辑视图。

  • 右击 data model → Create → Association 或
  • 右击 Association 文件夹 → Create

双击 Association folder → Edit Mode → Insert Row

输入给定标签的详细信息:

  • Name for the association
  • External Association Editor
  • Principal entity and cardinality
  • Dependent Entity and Cardinality

点击 Association set。右击 data model → Create → Association Set.

在 Service Builder 中创建 Function Import, 右击 Data Model → Create → Function Import.

输入 Function Import 的名称,您可以从其他选项中选择并单击 保存图标

定义复合类型, 跳转到 Data Model → right Click → Complex type.

根据要求输入详细信息并保存。

这是创建数据模型、实体集、类型、关联和复合类型的方法。


如何导入数据模型

有 4 个选项可用于从文件导入数据模型 −

  • Data model from File
  • DDIC structure
  • RFC/BOR Interface
  • Search Help

要导入数据模型,请执行以下步骤 −运行 T-code: SEGW

右击 Project Name → Import → select import method

输入路径并导入实体类型、实体集、关联和复合类型。


映射到数据源

转到 Data Model → Service Implementation → select Entity Set for Mapping

输入本地或远程系统数据源、类型和名称并保存。

这将启用查询操作下的映射节点。您可以为单个对象进行映射,也可以使用 Propose mapping 选项。


服务维护和注册

转到 Data Model。双击 Service Maintenance

选择要注册的系统,然后单击顶部的 Register 选项。

选择 project → Local Object 然后单击勾号保存。

检查 Service Registration 服务注册状态。

要维护服务,请单击 Maintain 维护按钮。另一个窗口将打开。

单击 Call browser 并选择将此服务用作 URL。单击 OK

浏览器将打开;输入用户名和密码以查看服务是否作为 OData 服务公开。