O que são ODATA e REST API e por que precisamos delas?
A combinação de diferentes sistemas de software às vezes é necessária, às vezes obrigatória em nosso mundo de TI moderno. A questão é como esses sistemas devem se comunicar e trocar dados. Foram descobertos uma série de padrões e protocolos para facilitar a comunicação entre diferentes sistemas. Se você já explorou esses sistemas, é possível que tenha encontrado duas tecnologias populares: OData e as APIs REST.
O que é REST?
Uma API é um conjunto de definições e protocolos para construir e integrar software de aplicativos. Às vezes é chamado de contrato entre um provedor de informações e um usuário de informações, estabelecendo o conteúdo exigido pelo consumidor (a chamada) e o conteúdo exigido pelo produtor (a resposta). Por exemplo, o design de uma API para um serviço meteorológico poderia especificar que o usuário forneça um código postal e que o produtor responda com uma resposta de 2 partes, sendo a primeira a temperatura alta e a segunda a temperatura baixa.
REST (REpresentational State Transfer) é um estilo arquitetônico de software que define como enviar mensagens entre dois sistemas diferentes usando o protocolo HTTP. Originalmente desenvolvido por Roy Fielding há duas décadas, o REST cresceu para se tornar a arquitetura mais popular para trocar informações na World Wide Web.
O padrão REST descreve 6 princípios ou restrições arquitetônicas diferentes para serviços web. Mas não vou escrever sobre isso porque nosso tema é diferente.
O que é ODATA?
ODATA se identifica como "OData (Open Data Protocol) é um padrão da OASIS que define as melhores práticas para construir e consumir APIs RESTful. OData ajuda você a se concentrar na sua lógica empresarial ao construir APIs RESTful sem precisar se preocupar com abordagens para definir cabeçalhos de solicitação e resposta, códigos de estado, métodos HTTP, convenções de URL, tipos de mídia, formatos de carga útil e opções de consulta, etc. OData também orienta você sobre o rastreamento de alterações, a definição de funções/ações para procedimentos reutilizáveis e o envio de solicitações assíncronas/lote, etc. Além disso, o OData fornece facilidades de extensão para atender a qualquer necessidade personalizada das suas APIs RESTful."
OData vs REST: Qual é a diferença?
REST é um estilo arquitetônico para trocar informações por meio do protocolo HTTP. O padrão REST define princípios que devem ser seguidos por qualquer API REST.
OData é baseado no framework REST para definir as melhores práticas para construir APIs REST, incluindo o formato de mensagem HTTP, como consultar a API e mais. Embora o OData encoraje os usuários a seguir os princípios REST o tempo todo, esse requisito pode ser flexibilizado se houver uma razão convincente. Além disso, o OData especifica que os dados devem ser transferidos nos formatos Atom ou JSON.
Resumindo
REST é uma técnica de design genérica usada para descrever como um serviço web pode ser acessado. Usando REST, você pode fazer solicitações http para obter dados. Se tentar no seu navegador, seria como acessar um site, exceto que, em vez de retornar uma página web, você receberia XML. Alguns serviços também retornarão dados em formato JSON, que é mais fácil de usar com JavaScript.
OData é uma tecnologia específica que expõe dados por meio do REST.
REST: padrão de design
OData: tecnologia habilitadora
Você pode entender melhor a tecnologia ODATA com este tutorial:
https://www.odata.org/getting-started/understand-odata-in-6-steps/
Quais são as vantagens do ODATA?
OData fornece os seguintes benefícios:
-
Permite que os desenvolvedores interajam com dados usando serviços web RESTful.
-
Fornece uma maneira simples e uniforme de compartilhar dados de forma descobrível.
-
Permite ampla integração entre produtos.
-
Permite integração usando o conjunto de protocolos HTTP.
O que há de novo no ODATAV4?
Melhorias no modelo.
Os serviços de OData V4.01 podem suportar os seguintes novos construtos de metadados:
-
Edm.Untyped: para especificar que uma propriedade pode ser de qualquer tipo. Suporta a representação de coisas fora do modelo de dados de OData, como propriedades de tipo variante, coleções mistas ou coleções de coleções.
-
Tipos de entidade sem chave para singletons: os tipos de entidade usados como singletons, ou propriedades de navegação singleton, não precisam mais ter um valor de chave definido.