Resumen de OData estándar para un mínimo de sólo lectura implementación
Pregunta
El Especificación OData es largo.Incluso el "OData Core"el documento es bastante largo.
Así que, ¿qué tal un condensado resumen de lo que sólo lectura de OData editor necesita aplicar a un mínimo?
Solución
Voy a empezar.Un servicio OData proporciona un extremo HTTP que:
- DEBE entender "
Accept
"los encabezados - DEBE apoyar el encabezado de Tipo de Contenido, y DEBE ser compatible con formato de ATOM (opcionalmente JSON)
- PUEDE devolver un documento de servicio (lista de colecciones) para
GET /
(10.1.1)- Si un ÁTOMO (AtomPub?) el formato, la jerarquía es
service/workspace/collection/title
- Si un ÁTOMO (AtomPub?) el formato, la jerarquía es
- DEBE devolver las descripciones de las colecciones a las solicitudes como las
GET /Customers
(10.2)- Si un ÁTOMO, la jerarquía es
feed/entry/content
- Si un ÁTOMO, la jerarquía es
- DEBE devolver las descripciones de las entidades a las solicitudes como las
GET /Customers(3)
(10.2.1) - PUEDE devolver las propiedades individuales de las entidades individuales de las solicitudes como las
GET /Customers(3)/Name
(10.2.2) - DEBE poner a su disposición un CSDL esquema de descripción envuelto en un EDMX documento (10.1.2)
- Esto DEBERÍA estar disponible en
/$metadata
- Esto DEBERÍA estar disponible en
- PUEDE apoyar cualquiera de estas consultas (10.2.3)
- Filtros (límite de filas devueltas):
Products?$filter=Price lt 10.00
- Seleccione (límite de los campos devueltos):
Products?$select=Rating,ReleaseDate
- Pedido por:
Products?$orderby=ReleaseDate asc, Rating desc
- La parte superior, skip:
Products?$top=5&$skip=2
- InlineCount (incluir una entidad count):
Products?$inlinecount=allpages
- Filtros (límite de filas devueltas):
- DEBE (?) proporcionar una lista de las relaciones de una entidad (10.2.4):
Products(0)/$links/Orders
- DEBE proporcionar una entidad count (10.2.5):
Products/$count
- PUEDE apoyar a otros formatos con
$format
el especificador (10.2.3.7)
Cuando un ÁTOMO de alimentación se devuelve (como para una colección), es necesario para adaptarse a algunos de OData convenciones: http://www.odata.org/documentation/odata-v3-documentation/atom-format/ Por ejemplo:
- Tipos que se utilizan son "
edm:String
"etc. link
los elementos utilizados en generosamentecontent
los elementos que contienen el contenido en línea (por ejemplo, datos de texto), o un enlace a ella (por ejemplo, imágenes, archivos binarios) consrc=
atributo.
Cuando una fuente de JSON es devuelto, se sigue de forma similar ciertas reglas:
Las direcciones url se anima a seguir este esquema:
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow