Enquanto olhava para alguns serviços da web, deparei-me com essa "nova" tecnologia que a Microsoft está chamando de OData . Ao ler sua descrição nas Perguntas frequentes sobre o que é OData, estou tendo dificuldade em distinguir os serviços da Web OData e REST-ful. Alguém poderia me ajudar a entender as diferenças?
web-services
rest
odata
Scott
fonte
fonte
Respostas:
ATUALIZAÇÃO Aviso, esta resposta está extremamente desatualizada agora que o OData V4 está disponível.
Eu escrevi um post sobre o assunto há um tempo atrás aqui .
Como disse Franci, o OData é baseado no Atom Pub. No entanto, eles colocaram algumas funcionalidades na parte superior e, infelizmente, ignoraram algumas das restrições REST no processo.
O recurso de consulta de um serviço OData requer que você construa URIs com base nas informações que não estão disponíveis ou vinculadas na resposta. É o que as pessoas REST chamam de informações fora da banda e introduz um acoplamento oculto entre o cliente e o servidor.
O outro acoplamento que é introduzido é através do uso de metadados EDMX para definir as propriedades contidas no conteúdo da entrada. Esses metadados podem ser descobertos em um terminal fixo chamado $ metadata. Novamente, o cliente precisa saber disso com antecedência, não pode ser descoberto.
Infelizmente, a Microsoft não achou adequado criar tipos de mídia para descrever esses dados importantes, portanto, qualquer cliente OData precisa fazer várias suposições sobre o serviço com o qual está conversando e os dados que está recebendo.
fonte
O protocolo OData é construído sobre o protocolo AtomPub. O protocolo AtomPub é um dos melhores exemplos de design da API REST. Portanto, de certa forma, você está certo - o OData é apenas mais uma API REST e cada implementação do OData é um serviço da Web completo para REST.
A diferença é que o OData é um protocolo específico; REST é estilo de arquitetura e padrão de design.
fonte
O REST é uma técnica de design genérica usada para descrever como um serviço da Web pode ser acessado. Usando o REST, você pode fazer solicitações http para obter dados. Se você experimentá-lo em seu navegador, seria como acessar um site, exceto que, em vez de retornar uma página da Web, você retornaria o XML. Alguns serviços também retornam dados no formato JSON, que é mais fácil de usar com Javascript.
OData é uma tecnologia específica que expõe dados através do REST.
Se você quiser resumir bem rápido, pense nisso como:
fonte
Em 2012, o OData passou por uma padronização, então vou adicionar uma atualização aqui ..
Primeiro as definições:
REST - é uma arquitetura de como enviar mensagens por HTTP.
OData V4 - é uma implementação específica do REST, realmente define o conteúdo das mensagens em diferentes formatos (atualmente eu acho que é AtomPub e JSON). O ODataV4 segue os princípios de descanso.
Por exemplo, o pessoal do asp.net geralmente usa o controlador WebApi para serializar / desserializar objetos em JSON e fazer com que o javascript faça alguma coisa com ele. O objetivo de Odata é poder consultar diretamente a partir da URL com opções prontas para uso.
fonte
Na documentação do OData :
fonte
para mais detalhes em http://www.odata.org/
fonte
ODATA é um tipo especial de REST, no qual podemos consultar dados uniformemente a partir da URL.
fonte
RESTO significa RE apresentação S tate T ransferência que é um estilo de arquitetura baseada em recursos. Baseado em recursos significa que dados e funcionalidades são considerados recursos.
OData é um protocolo baseado na Web que define um conjunto de práticas recomendadas para criar e consumir serviços da Web RESTful. OData é uma maneira de criar serviços da Web RESTful, portanto, uma implementação do REST.
fonte