访问OData属性
我对odatawebservices很陌生。我想在移动平台上获取并填充以下输出。我可以在移动平台上填充以下url数据。然而,一旦我开始做另一个练习。我被以下odata输出所困扰。如何访问属性,例如名称或描述访问OData属性,odata,Odata,我对odatawebservices很陌生。我想在移动平台上获取并填充以下输出。我可以在移动平台上填充以下url数据。然而,一旦我开始做另一个练习。我被以下odata输出所困扰。如何访问属性,例如名称或描述 PUT /OData/OData.svc/Products(1) HTTP/1.1 Host: services.odata.org DataServiceVersion: 1.0 MaxDataServiceVersion: 2.0 accept: application/atom+x
PUT /OData/OData.svc/Products(1) HTTP/1.1 Host: services.odata.org DataServiceVersion:
1.0 MaxDataServiceVersion: 2.0 accept: application/atom+xml
content-type: application/atom+xml Content-Length: 1181
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Entry xml:base="http://services.odata.org/OData/OData.svc/"
xmlns:d=" http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m=" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<id>http://services.odata.org/OData/OData.svc/Products(1)</id>
<title type="text"></title>
<updated>2010-02-28T10:23:02Z</updated>
<author>
<name />
</author>
<Link rel="edit" title="Product" href="Products(1)" />
<category term="DataServiceProviderDemo.Product"
scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:ID m:type="Edm.Int32">1</d:ID>
<d:Name>Milk</d:Name>
<d:Description>Low fat milk</d:Description>
<d:ReleaseDate m:type="Edm.DateTime">1995-10-21T00:00:00</d:ReleaseDate>
<d:DiscontinuedDate m:type="Edm.DateTime" m:null="true" />
<d:Rating m:type="Edm.Int32">4</d:Rating>
<d:Price m:type="Edm.Decimal">4.5</d:Price>
</m:properties>
</content>
</Entry>
PUT/OData/OData.svc/Products(1)HTTP/1.1主机:services.OData.org数据服务版本:
1.0 MaxDataServiceVersion:2.0 accept:application/atom+xml
内容类型:应用程序/atom+xml内容长度:1181
http://services.odata.org/OData/OData.svc/Products(1)
2010-02-28 10:23:02Z
1.
牛奶
低脂牛奶
1995-10-21T00:00:00
4.
4.5
访问特定属性有几种方法,因为实体上有两种属性:非导航属性和导航属性
非导航属性可以是基元类型属性、基元类型属性集合、复杂类型属性、复杂类型属性或流属性。查询实体集或特定实体时,默认情况下,非导航属性的值是实体有效负载的内联值:
e、 g.ID
、Name
、Description
等在查询时是内联的:
GET http://services.odata.org/v4/odata/odata.svc/Products
如果要选择所需的属性,可以使用$select
查询选项。例如
GET http://services.odata.org/v4/odata/odata.svc/Products?$select=ID,Name
通过附加这样的查询选项,您将只找到负载内联所需的属性
如果只想访问属性值,则应将属性名称作为一个段附加到单个实体的请求URL中。例如
GET http://services.odata.org/v4/odata/odata.svc/Products(1)/ID
还有另一种属性:导航属性。它们是实体类型属性或实体类型属性的集合。导航属性描述服务中不同实体之间的关系。例如,产品
实体上的类别
导航属性
默认情况下,导航属性不显示在实体有效负载的内联中。为了内联包含它们,需要使用$expand
查询选项:
GET http://services.odata.org/v4/odata/odata.svc/Products?$expand=Categories
如果只想访问导航属性,则请求URL与非导航属性类似:
GET http://services.odata.org/v4/odata/odata.svc/Products(1)/Categories
要了解有关如何针对不同场景发出不同OData请求以及URL约定的更多信息,请参阅以下资料:
OData.org上的教程:(基础),(高级)
OData V4的URL约定规范:
OData V4的协议规范:您的问题是想用atom负载更新services.OData.org/V4/OData/OData.svc/中的实体并获取错误信息吗?访问属性有什么意义?似乎是另一个问题。你能详细说明一下你的情况和遇到的问题吗?:)我想获取ID、名称、描述、发布日期、不连续性、评级、价格属性。我感到困惑的原因是HTTP动词在您附加的输出中是“PUT”。好了,现在我想我知道怎么回答了:)请说吧,对不起把易丁弄糊涂了:-)太棒了!非常详细的回答。非常感谢易丁。你好易丁,你对以下问题有什么想法: