O数据规范 长。即便是 ”O数据核心“文件很长。

那么,对只读 OData 发布者至少需要实现的内容进行简要总结怎么样?

有帮助吗?

解决方案

我开始吧。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)
  • 必须提供一个 CSDL 包含在 EDMX 文档中的架构描述 (10.1.2)
    • 这应该可以在 /$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 feed(例如集合)时,它需要符合一些 OData 约定: http://www.odata.org/documentation/odata-v3-documentation/atom-format/ 例如:

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

当返回 JSON feed 时,它同样遵循某些规则:

鼓励 URL 遵循此方案:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top