Resumo do OData padrão para um mínimo, só de leitura implementação
Pergunta
O Especificação de OData é longo.Até mesmo o "OData Núcleo"o documento é muito longo.
Então, como um resumo condensado do que um só de leitura OData editor precisa implementar, no mínimo?
Solução
Eu vou começar.Um OData de serviço fornece um ponto de extremidade HTTP que:
- DEVE entender-se "
Accept
"cabeçalhos - DEVE suportar o cabeçalho de Tipo de Conteúdo, e TEM de suportar o formato ATOM (opcionalmente JSON)
- PODE devolver um documento de serviço (lista de coleções) para
GET /
(10.1.1)- Se o ÁTOMO (AtomPub?) o formato, a hierarquia é
service/workspace/collection/title
- Se o ÁTOMO (AtomPub?) o formato, a hierarquia é
- DEVE retornar descrições de coleções solicitações como
GET /Customers
(10.2)- Se ÁTOMO, a hierarquia é
feed/entry/content
- Se ÁTOMO, a hierarquia é
- DEVE retornar descrições de entidades individuais para solicitações como
GET /Customers(3)
(10.2.1) - PODE devolver propriedades individuais de entidades individuais para solicitações como
GET /Customers(3)/Name
(10.2.2) - DEVE dispor de um CSDL descrição de esquemas envolto em um EDMX documento (10.1.2)
- Este DEVE ser disponível em
/$metadata
- Este DEVE ser disponível em
- PODE apoiar qualquer uma dessas consultas (10.2.3)
- Filtros (limite de linhas retornadas):
Products?$filter=Price lt 10.00
- Selecione (limite de campos retornados):
Products?$select=Rating,ReleaseDate
- Por ordem:
Products?$orderby=ReleaseDate asc, Rating desc
- Superior, ignorar:
Products?$top=5&$skip=2
- InlineCount (uma entidade de contagem):
Products?$inlinecount=allpages
- Filtros (limite de linhas retornadas):
- DEVE (?) fornecer uma lista de relações de uma entidade (10.2.4):
Products(0)/$links/Orders
- DEVE fornecer uma entidade de contagem (10.2.5):
Products/$count
- PODE dar suporte a outros formatos com
$format
especificador (10.2.3.7)
Quando um ÁTOMO de alimentação é devolvido (como um conjunto), ele precisa obedecer a algumas OData convenções: http://www.odata.org/documentation/odata-v3-documentation/atom-format/ Por exemplo:
- Os tipos usados são "
edm:String
"etc. link
são utilizados elementos generosamentecontent
os elementos que contêm conteúdo inline (por exemplo, dados de texto), ou link para ele (por exemplo, imagens, arquivos binários), comsrc=
atributo.
Quando um feed JSON retornado, ele da mesma forma segue algumas regras:
URLs são incentivados a seguir este esquema:
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow