Zusammenfassung des OData-Standards für eine minimale, schreibgeschützte Implementierung
Frage
Der OData-Spezifikation ist lang.Sogar die "OData-Kern" das Dokument ist ziemlich lang.
Wie wäre es also mit einer komprimierten Zusammenfassung dessen, was ein schreibgeschützter OData-Publisher mindestens implementieren muss?
Lösung
Ich fange an.Ein OData-Dienst stellt einen HTTP-Endpunkt bereit, der:
- MUSS verstehen "
Accept
" Headern - MUSS den Inhaltstyp-Header unterstützen und DAS ATOM-Format (optional JSON) unterstützen
- KANN ein Servicedokument (Liste der Sammlungen) an zurücksenden
GET /
(10.1.1)- Wenn ATOM (AtomPub?) format, die Hierarchie ist
service/workspace/collection/title
- Wenn ATOM (AtomPub?) format, die Hierarchie ist
- MUSS Beschreibungen von Sammlungen an Anfragen wie zurückgeben
GET /Customers
(10.2)- Wenn ATOM, ist die Hierarchie
feed/entry/content
- Wenn ATOM, ist die Hierarchie
- MUSS Beschreibungen einzelner Entitäten an Anfragen wie zurückgeben
GET /Customers(3)
(10.2.1) - KANN einzelne Eigenschaften einzelner Entitäten für Anforderungen wie zurückgeben
GET /Customers(3)/Name
(10.2.2) - MUSS eine zur Verfügung stellen CSDL schemabeschreibung in ein EDMX-Dokument eingeschlossen (10.1.2)
- Dies sollte verfügbar sein unter
/$metadata
- Dies sollte verfügbar sein unter
- KANN jede dieser Abfragen unterstützen (10.2.3)
- Filter (Anzahl der zurückgegebenen Zeilen begrenzen):
Products?$filter=Price lt 10.00
- Auswählen (Limit-Felder werden zurückgegeben):
Products?$select=Rating,ReleaseDate
- Bestellung nach:
Products?$orderby=ReleaseDate asc, Rating desc
- Nach oben, überspringen:
Products?$top=5&$skip=2
- InlineCount (eine Entitätsanzahl einschließen):
Products?$inlinecount=allpages
- Filter (Anzahl der zurückgegebenen Zeilen begrenzen):
- MUSS (?) stellen Sie eine Liste von Beziehungen für eine Entität bereit (10.2.4):
Products(0)/$links/Orders
- MUSS eine Entitätsanzahl angeben (10.2.5):
Products/$count
- KANN andere Formate mit unterstützen
$format
bezeichner (10.2.3.7)
Wenn ein ATOM-Feed zurückgegeben wird (z. B. für eine Sammlung), muss er einigen OData-Konventionen entsprechen: http://www.odata.org/documentation/odata-v3-documentation/atom-format/ Beispielsweise:
- Verwendete Typen sind "
edm:String
" usw. link
elemente werden großzügig eingesetztcontent
elemente enthalten entweder Inline-Inhalte (z. B. Textdaten) oder verlinken darauf (z. B. Bilder, Binärdateien) mitsrc=
Attribut.
Wenn ein JSON-Feed zurückgegeben wird, folgt er in ähnlicher Weise bestimmten Regeln:
URLs werden aufgefordert, diesem Schema zu folgen:
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow