Definir diferenças entre SOAP, OData, REST e API

Concluído

Web Services Description LanguageO protocolo SOAP é um protocolo de mensagens baseado em XML. Ele permite que processos diferentes (remotos) se comuniquem. O protocolo SOAP conta com HTTPs, SMTP ou FTP para negociação e transmissão de mensagens. Não é fácil trabalhar com o protocolo SOAP.

O tipo mais comum de padrão de mensagens no protocolo SOAP é a RPC (chamada de procedimento remoto), em que um nó de rede (o cliente) envia uma mensagem de solicitação para outro nó (o servidor) e o servidor envia uma mensagem de resposta para o cliente. A RPC usa o envelope do protocolo SOAP, que define a estrutura da mensagem e como processá-la.

Para trabalhar com protocolo SOAP, o cliente que se conecta ao Business Central Server deve ser capaz de compreender as mensagens do protocolo SOAP. No .NET Framework, os serviços do protocolo SOAP foram aceitos desde o lançamento do Windows Communication Framework (WCF) na versão 3.0.

Um serviço do protocolo SOAP expõe um arquivo de Linguagem WSDL (Web Services Description Language) que descreve como o serviço pode ser chamado, quais parâmetros ele espera e qual estrutura de dados ela retorna. Esse arquivo é um documento baseado em XML e tem o objetivo de ser lido por máquinas, não por seres humanos.

O Business Central também oferece suporte ao Protocolo Open Data, ou OData, que também é um protocolo aberto projetado para usar e consultar APIs RESTful. Uma API é um conjunto de rotinas e protocolos que são usados para a comunicação entre diferentes componentes de software. As APIs foram usadas há muitos anos, e quase todos os softwares tinham uma API que permitia a outros programas usar alguma funcionalidade do software. A biblioteca do Win32, por exemplo, é uma API conhecida do Windows que é usada para executar aplicativos mais antigos em versões mais novas do Windows.

No momento, as APIs são usadas com mais frequência em aplicativos Web. Todos os grandes aplicativos Web como o Facebook, o LinkedIn, o Microsoft Graph e assim por diante, oferecem a possibilidade de se conectar usando APIs para melhorar a experiência do aplicativo Web ou para usar dados que são fornecidos pelo aplicativo Web. Se essas APIs seguirem a arquitetura REST, elas serão referidas como APIs RESTful. O REST é uma arquitetura para serviços Web que pode funcionar em escala na Internet, o que significa que eles podem manipular várias conexões e solicitações da Web. Esses serviços não são monitorados, o que significa que você pode solicitar alguns dados do servidor e o servidor responde, mas não mantém um estado interno ou uma sessão sobre a solicitação. O servidor fecha a conexão após a resposta.

Essas transferências só podem acontecer em HTTPs, e o REST oferece suporte a JSON e a XML. No entanto, JSON é o formato mais usado em combinação com serviços REST.

A vantagem significativa do REST é a forma como você pode chamar serviços REST. Para fazer essas chamadas, você pode usar uma URL que usa verbos HTTP, como GET, POST, PUT e DELETE. Toda linguagem de programação capaz de enviar solicitações HTTP pode funcionar com serviços REST, o que resulta em um desempenho muito maior e escalabilidade do que o protocolo SOAP. Além disso, por ser uma solicitação HTTP, os navegadores ou o servidor podem armazenar as respostas em cache.

O OData foi criado em serviços REST e pode ser usado para consultar serviços REST. Por exemplo, ao fornecer parâmetros de consulta adicionais para uma URL, você pode limitar ou filtrar o conjunto de resultados. O OData é simples de usar para operações CRUD. Onde o protocolo SOAP expõe um documento WSDL, o OData expõe um documento EDMX, que contém metadados para todos os serviços Web publicados.

O OData usa formatos diferentes para representar dados e o modelo de dados. O formato JSON é o padrão, mas o formato Atom também está disponível com o OData. O Atom também é um formato baseado em XML usado para alimentações da Web (como feeds de notícias). O documento EDMX é criado como um documento XML, portanto, o OData usa uma combinação de diferentes formatos de arquivo.