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

StackOverflow https://stackoverflow.com//questions/11665956

Вопрос

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

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

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

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

URL-адресам рекомендуется следовать следующей схеме:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top