API Socket e WebSocket: como funcionam no setor financeiro
Por Bruno Zago
04 agosto 2020 - 16:51 | Atualizado em 13 setembro 2023 - 16:59
Entender a tecnologia para o setor financeiro pode ser um desafio, principalmente se você tem pouca familiaridade com o assunto. Mesmo que você utilize uma API nos negócios e seja capaz de assimilar o básico, a diversidade de termos técnicos pode confundir.
Afinal, o que é uma API Rest? Qual é a diferença dela para a API Socket? E você sabe como funciona a WebSocket? Essas são algumas soluções utilizadas no mercado financeiro importantes para quem trabalha no setor.
Quer descobrir exatamente como elas atuam para ajudá-lo a conquistar melhores resultados nos processos de transformação digital? Então continue a leitura!
O que é API Rest?
API Rest é um conjunto de boas práticas da API para realizar requisições HTTP — como criação, leitura, atualização e exclusão de dados no servidor — em aplicações web.
Rest é uma abreviatura para Representational State Transfer, ou Transferência de Estado Representacional. A função é mapear os elementos da aplicação e restringir as requisições, de forma que elas atendam às diretrizes da própria arquitetura.
Essas restrições determinam as seguintes regras:
- As aplicações no servidor e no cliente devem ser separadas;
- As requisições devem ser feitas de forma independente, executando as ações individualmente;
- A API deve utilizar o cache para evitar chamadas recorrentes ao servidor;
- A interface deve ser uniforme, com recursos identificados e manuseados por representações, links de navegação do aplicativo e mensagens autodescritivas.
A API Rest normalmente utiliza a linguagem XML/JSON para acessar aplicações de back-end, de acordo com os objetivos.
Utilizando a API Rest
Muitas são as formas de usar uma API Rest. Uma bastante comum é a aplicação de APIs nas redes sociais. As funcionalidades variam desde a utilização do login nas páginas da internet até a realização de outras ações, como curtidas, compartilhamentos e recuperação de informações.
Um botão da rede social atrelado a uma página de WordPress, por exemplo, realiza uma chamada a partir da API para concluir a ação. Com um token de autorização liberado pela API Rest, o usuário consegue acesso aos dados desejados.
O mesmo ocorre com sites de e-commerce. Neles, a API funciona como intermediação entre as redes de pagamentos para finalizar uma transação comercial. Sempre que for necessário realizar uma conexão entre dois destinos, essa tecnologia será essencial para proporcionar segurança e praticidade.
O que é a API Socket?
API Socket é uma solução streaming que entrega cotações, book de ofertas (completo e resumido) e times & trades (negócios realizados) da B3. Trata-se de uma interface que permite aos programas o controle e uso dos soquetes de rede, que são um modelo de construção de programação.
Geralmente utiliza o padrão Berkeley sockets para permitir a comunicação entre processos. Assim, ambos podem emitir as operações fornecidas pela API para emitir e receber dados.
Por se tratar de um tipo de API, a utilização deve continuar respeitando um conjunto de regras para a troca de dados com outros programas. A API Socket atua de forma consistente para processar as comunicações, permitindo criar soquetes em diferentes domínios para estabelecer o contato com vários destinatários, com diferenças mínimas entre eles.
A construção da programação de um soquete pode utilizar protocolos UDP (soquete de datagrama) ou TCP (soquete de fluxo).
UDP ou soquete de datagrama
O UDP é implementado pelo Java DatagramSocket. A comunicação pode ser realizada com ou sem conexão, mas não fornece recursos de solicitação de montagem e retransmissão.
O UDP apenas passa os pacotes, sendo as camadas superiores responsáveis por garantir que a mensagem esteja sequenciada adequadamente nos códigos.
TCP ou soquete de fluxo
O TCP é implementado pelo JavaSocket. Esse protocolo divide as mensagens em pacotes e faz a remontagem da sequência correta no final da entrega, diminuindo o trabalho das camadas superiores. Ele também lida com a solicitação de retransmissão de pacotes ausentes.
No Java, há duas classes fornecidas para a API:
- DatagramSocket para as soquetes — cada soquete está conectado a uma porta UDP da máquina local do processo.
- DatagramPacer para o datagram trocado — o processo cria uma representação do datagram, instanciando um objeto que carrega o endereço de destino e os dados como referência a uma matriz de bytes. Além disso, emite uma chamada para o objeto, especificando uma referência como argumento.
O que é WebSocket?
WebSocket é uma API que estabelece conexões bilaterais de soquete entre um navegador e um servidor, permitindo assim a troca de dados com base em TCP. Ele fornece sinal de Market Data em que o recurso de cotação é entregue em streaming e em XML/JSON, disponível para os mercados B3 e Moedas.
Sua projeção é própria para navegadores que suportem o HTML5, mas pode ser usado por qualquer cliente ou servidor. A padronização da API WebSocket é feita pelo W3C, enquanto a do protocolo WebSocket é realizada pelo IETF.
Embora o WebSocket ainda não esteja implementado por completo em todos os navegadores, é possível usá-lo com bibliotecas que utilizam fallbacks sempre que ele não estiver disponível.
Outras soluções também permitem a integração a partir de uma API HTTP para enviar mensagens WebSocket aos clientes. A solicitação HTTP extra, porém, resulta em uma sobrecarga adicional em relação ao WebSocket puro.
As pilhas de servidor tradicionais têm dificuldade para trabalhar com muitas conexões WebSocket simultâneas, mesmo sendo desenvolvidas com ciclo de solicitação e resposta HTTP. Para isso, é necessária uma arquitetura capaz de receber alta concorrência com baixo desempenho, normalmente desenvolvidas por encadeamento ou no IO sem bloqueio.
Conheça o Market Data Cedro
Agora que você já entende um pouco mais sobre as tecnologias apresentadas, o que acha de conhecer uma API de Market Data em tempo real para os seus projetos?
O Market Data Cedro é nosso serviço para o mercado financeiro que utiliza APIs e Feeds para a distribuição de dados. Está disponível para B3 (BM&FBOVESPA), Moedas, Taxas, Indicadores e Agrícola, entre outros mercados. A comunicação é feita via Rest/JSON, Socket e Websocket.
Deixe um comentário