访问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

我对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+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”。好了,现在我想我知道怎么回答了:)请说吧,对不起把易丁弄糊涂了:-)太棒了!非常详细的回答。非常感谢易丁。你好易丁,你对以下问题有什么想法: