Résumé de la norme OData pour une implémentation minimale en lecture seule
Question
Le Spécification OData c'est long.Même le "Noyau OData" Le document est assez long.
Alors, que diriez-vous d’un résumé condensé de ce qu’un éditeur OData en lecture seule doit implémenter au minimum ?
La solution
Je vais commencer.Un service OData fournit un point de terminaison HTTP qui :
- DOIT comprendre "
Accept
" en-têtes - DOIT prendre en charge l'en-tête Content-Type et DOIT prendre en charge le format ATOM (éventuellement JSON)
- PEUT retourner un document de service (liste des collections) à
GET /
(10.1.1)- Si le format ATOM (AtomPub?), la hiérarchie est
service/workspace/collection/title
- Si le format ATOM (AtomPub?), la hiérarchie est
- DOIT renvoyer les descriptions des collections à des requêtes telles que
GET /Customers
(10.2)- Si ATOM, la hiérarchie est
feed/entry/content
- Si ATOM, la hiérarchie est
- DOIT renvoyer des descriptions d'entités individuelles à des requêtes telles que
GET /Customers(3)
(10.2.1) - PEUT renvoyer des propriétés individuelles d'entités individuelles pour des requêtes telles que
GET /Customers(3)/Name
(10.2.2) - DOIT mettre à disposition un CSDL description du schéma enveloppée dans un document EDMX (10.1.2)
- Cela DEVRAIT être disponible à
/$metadata
- Cela DEVRAIT être disponible à
- PEUT prendre en charge n'importe laquelle de ces requêtes (10.2.3)
- Filtres (limiter les lignes renvoyées) :
Products?$filter=Price lt 10.00
- Sélectionnez (limiter les champs renvoyés) :
Products?$select=Rating,ReleaseDate
- Commandé par:
Products?$orderby=ReleaseDate asc, Rating desc
- En haut, ignorez :
Products?$top=5&$skip=2
- InlineCount (inclure un nombre d'entités) :
Products?$inlinecount=allpages
- Filtres (limiter les lignes renvoyées) :
- DOIT (?) fournir une liste de relations pour une entité (10.2.4) :
Products(0)/$links/Orders
- DOIT fournir un nombre d'entités (10.2.5) :
Products/$count
- PEUT prendre en charge d'autres formats avec
$format
spécificateur (10.2.3.7)
Lorsqu'un flux ATOM est renvoyé (par exemple pour une collection), il doit être conforme à certaines conventions OData : http://www.odata.org/documentation/odata-v3-documentation/atom-format/ Par exemple:
- Les types utilisés sont "
edm:String
" etc. link
les éléments sont utilisés généreusementcontent
les éléments contiennent soit du contenu en ligne (par exemple, des données texte), soit un lien vers celui-ci (par exemple, des images, des fichiers binaires) avecsrc=
attribut.
Lorsqu'un flux JSON est renvoyé, il suit également certaines règles :
Les URL sont encouragées à suivre ce schéma :
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow