Qual a diferença entre o oData e um serviço REST?

14

Estou pensando em escrever uma API de serviço da web e estou pensando em criar um serviço REST. O que significa OData neste contexto? Você pode explicar a diferença entre OData e REST?

Gyurisc
fonte
Veja: odata.org
NoChance 17/10

Respostas:

11

REST é uma arquitetura de como enviar e receber mensagens de um cliente para um servidor usando HTTP. OData é um padrão defendido pela Microsoft que usa uma arquitetura REST para enviar tipos específicos de mensagens por HTTP. O OData fala sobre como são as mensagens (o conteúdo). REST é a arquitetura de como essas mensagens são enviadas e voltadas.

RationalGeek
fonte
5

Concordo com @jkohlhepp e @Tom Squires, embora acrescentemos alguns detalhes.

OData é um padrão aberto (defendido pela Microsoft, mas adotado além da Microsoft e disponível para muitas plataformas, incluindo iOS e Android).

As cargas úteis do OData são baseadas no formato Atom (leitura) e AtomPub (atualização). (Além disso, o Atom também é a base para um formato de feed RSS popular.) O Atom é extensível e o OData aproveitou isso para criar extensões conhecidas. Por exemplo, com um serviço OData, existem convenções de URI com muitos recursos, como filtragem (filtro por data ou nome do cliente) e classificação e assim por diante. O uso dessas convenções especiais de maneira padrão (definida pelo OData) torna o OData poderoso, pois eles agem de maneira semelhante e podemos criar ferramentas para trabalhar contra eles e outros.

Existem algumas fontes OData conhecidas, como a Netflix (todos os dados de filmes estão lá - pode ser divertido brincar com ela!).

Leia tudo sobre o OData em odata.org .

Boa sorte! -Conta

codingoutloud
fonte
4

REST é um estilo arquitetônico de construção de serviços da Web. É apenas um modelo que diz que você pode usar HTTP e seus verbos (POST / PUT / GET etc.) para executar CRUD nos Recursos expostos pelos seus Serviços. Mas o REST não possui detalhes sobre como devem ser as URLs, como os formatos de solicitação / resposta devem ser, como consultar informações ou, em um nível básico, quais operações e recursos um serviço suporta em primeiro lugar!

No mundo dos serviços Web baseados em XML, temos SOAP, WSDL, WS- *, que definem os padrões que permitem a interoperabilidade entre vários serviços e seus clientes.

O OData está tentando fazer isso para os serviços web baseados em REST.

Ele define $ metadados no formato CSDL para explicar quais tipos (entidade / complexo) seu serviço suporta e suas propriedades, seus tipos de dados, como seus tipos estão relacionados e se seu serviço também suporta algumas operações especiais além do CRUD tradicional.

O OData padroniza os formatos de URL para seus recursos, como / Entity, / Entity ('id') ou / Entity (chave1 = valor1, chave2 = valor2) ... e assim por diante.

O OData padroniza os formatos de solicitação / resposta em JSON e AtomXml sobre como os dados e seus metadados são estruturados.

O OData também especifica uma linguagem de consulta muito rica para permitir que os consumidores consultem seus serviços para obter informações precisas que procuram - com a ajuda de $ filter, $ orderby, $ skip, $ top, $ expand.

O OData ajuda você a descrever todo o seu Modelo de Dados - Entidades e seus Relacionamentos e oferece suporte a todos os tipos de operações como CRIAR, ATUALIZAR, EXCLUIR, GET, MERGE e até OPERAÇÕES PERSONALIZADAS nessas entidades e / ou relacionamentos.

O OData v4 agora é um padrão OASIS com muitas melhorias em relação às versões anteriores. O ecossistema para OData está crescendo lentamente.

Anil G
fonte
2

OData é um padrão implementado usando REST.

Tom Squires
fonte