构建 OData 服务 [5]:使用 OData URI

2021-11-07 23:46发布


          点击此处--->   EasySAP.com 群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)

在本文中,您将了解有关 OData 服务 URI 的更多信息。

这是构建 OData 服务系列的一篇文章。可以通过以下链接访问较早的帖子。

  1. 构建 OData 服务 [1]:OData 概述

  2. 构建 OData 服务 [2]:了解 OData 服务

  3. 构建 OData 服务 [3]:创建 OData 服务

  4. 构建 OData 服务 [4]:注册和测试 OData 服务

要使用 OData,了解可以使用的 URI 选项非常重要。

所有 URI 选项的摘要

为了演示这些选项,使用了 Northwind 服务。该服务首先在我们查看元数据的 OData 概述 文章中引入

服务 URL:https : //services.odata.org/V2/Northwind/Northwind.svc/ 

应在https://services.odata.org/V2/Northwind/Northwind.svc之后添加以下内容


OptionURIDescription
Metadata/$metadataShows metadata for the service
Entity Set/Customers
/Order_Details
Get all records for the entity
Entity Set Count/Customers/$count
/Order_Details/$count
Get count of records in a entity set
Single Entity/Customers(‘ALFKI’)
/Order_Details(OrderID=10248,ProductID=11)
Get single entity record based on entity keys.For single key, it is not mandatory to mention the key name
Association/Customers(‘ALFKI’)/Orders
/Order_Details(OrderID=10248,ProductID=11)/Product
Displays associated entity sets recordsNote , separated keys
In-lining/Customers(‘ALFKI’)?$expand=OrdersShows data for principal entity and associated entity together
Filter/Customers?$filter=City eq ‘London’ and Country eq ‘UK’Used to filter the entity set records based on any property
Select/Customers?$select=ContactName,City,CountrySelect only specific fields
Filter and Select/Customers?$filter=City eq ‘London’ &$select=ContactName,City,CountryTo combine multiple options & can be used
Top and Skip/Customers?$top=2&$skip=5Top tells how many records to fetchSkip tells how many records to skip from the first recordTogether these help with displaying contents page by page
Sorting/Customers?$orderby=Country,City
/Customers?$orderby=Country desc,City asc
Sorts the result by properties in Ascending (asc) or descending (desc) order. default is ascending
Function Import/GetCarrierFlights?CarrierID=’AA’GetCarrierFlights is name of the function import and Carrid is the importing parameter. ***This is an example and does not work with Northwind service.

现在,让我们更仔细地查看每个 URL。

元数据

$元数据

显示服务的元数据。从元数据中,您可以了解服务的结构。元数据是一个包含所有实体类型、实体集、关联等信息的大型文档。

image.png


image.png


image.png


实体集

获取实体的所有记录。

/顾客

image.png


另一个可以检查的 URL 是 – https://services.odata.org/V2/Northwind/Northwind.svc/Orders/

实体集计数

/客户/$计数

这给出了实体集中的记录数。

image.png


单一实体

/客户('ALFKI')


由于此实体类型具有单个字段作为键,因此无需提及键名。

image.png



/Order_Details(OrderID=10248,ProductID=11)

在这里,我们需要提及以逗号 (,) 分隔的键名和值。


image.png



关联

/客户('ALFKI')/订单


这意味着使用密钥“ALFKI”获取客户实体的所有订单。这是一对多的关联。

image.png



/Order_Details(OrderID=10248,ProductID=11)/Product

这是一对一关联,其中显示了所选 Order_Detail 实体中产品的产品详细信息。


image.png


类似地,可以测试其余的 URL。

函数导入

/GetCarrierFlights?CarrierID='AA'


这在 Northwind 服务中不可用。这是一个示例,用于描述如何调用函数导入。这里,GetCarrierFlights是函数导入的名称,'AA' 被传递给参数 CarrierID。

将单独介绍如何创建和使用函数导入的详细信息。







赞赏支持