Краткое описание стандарта OData для минимальной реализации только для чтения

Спецификация OData длинная. Даже документ " OData Core" довольно длинный.

Итак, как насчет краткого изложения того, что издатель OData только для чтения должен реализовать как минимум?

1 ответ

Решение

Я начну. Служба 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 (например, для коллекции), он должен соответствовать некоторым соглашениям OData: http://www.odata.org/documentation/odata-v3-documentation/atom-format/ Например:

  • Типы используются "edm:String" так далее.
  • link элементы используются щедро
  • content элементы либо содержат встроенный контент (например, текстовые данные), либо ссылаются на него (например, изображения, двоичные файлы) с помощью src= приписывать.

Когда возвращается фид JSON, он аналогичным образом следует определенным правилам:

URL-адреса рекомендуется придерживаться этой схемы:

Другие вопросы по тегам