2

OData 规范很长。甚至“ OData Core ”文档也很长。

那么,简要总结一下只读 OData 发布者至少需要实现什么?

4

1 回答 1

6

我会开始的。OData 服务提供了一个 HTTP 端点,它:

  • 必须理解“ Accept”标题
  • 必须支持 Content-Type 标头,并且必须支持 ATOM 格式(可选 JSON)
  • 可以将服务文档(集合列表)返回到GET /(10.1.1)
    • 如果是 ATOM (AtomPub?) 格式,层次结构是service/workspace/collection/title
  • GET /Customers必须将集合的描述返回给像(10.2) 这样的请求
    • 如果是 ATOM,层次结构是feed/entry/content
  • GET /Customers(3)必须将单个实体的描述返回给像(10.2.1)这样的请求
  • GET /Customers(3)/Name可以为(10.2.2)之类的请求返回单个实体的单个属性
  • 必须提供包装在 EDMX 文档 (10.1.2) 中 的CSDL模式描述
    • 这应该可以在/$metadata
  • 可以支持任何这些查询 (10.2.3)
    • 过滤器(限制返回的行数):Products?$filter=Price lt 10.00
    • 选择(限制返回的字段):Products?$select=Rating,ReleaseDate
    • 订购:Products?$orderby=ReleaseDate asc, Rating desc
    • 顶,跳过:Products?$top=5&$skip=2
    • InlineCount(包括实体计数):Products?$inlinecount=allpages
  • 必须(?)提供实体的关系列表(10.2.4):Products(0)/$links/Orders
  • 必须提供实体计数 (10.2.5):Products/$count
  • 可以使用说明符支持其他格式$format(10.2.3.7)

当返回一个 ATOM 提要(例如一个集合)时,它需要符合一些 OData 约定:http ://www.odata.org/documentation/odata-v3-documentation/atom-format/例如:

  • 使用的类型是“ edm:String”等。
  • link元素被大量使用
  • content元素要么包含内联内容(例如,文本数据),要么通过src=属性链接到它(例如,图像、二进制文件)。

返回 JSON 提要时,它同样遵循某些规则:

鼓励 URL 遵循此方案:

于 2012-07-26T09:09:16.927 回答