Desmistificando APIs #2
Desmistificando APIs #2
No primeiro post, explicamos o que são as APIs e como elas facilitam a comunicação entre diferentes programas e serviços. Agora, na parte 2, vamos nos aprofundar um pouco mais.
Existem vários tipos de APIs, cada uma com suas características e usos específicos. Cada um tem suas vantagens e é escolhido conforme a necessidade específica do projeto ou aplicação. Aqui estão alguns dos principais tipos:
APIs REST
Essas são as mais comuns. Utilizam o protocolo HTTP para operações simples e são conhecidas por sua facilidade de uso. É como pedir diferentes sabores de pizza de um menu.
De forma prática, um exemplo comum de uma API REST é a API dos Correios ou de qualquer transportadora. Quando você faz uma compra online, pode acompanhar o status da entrega diretamente no site da loja.
Isso é possível porque o site usa uma API REST para consultar o número de rastreamento do seu pacote e obter atualizações em tempo real sobre sua localização e status de entrega.
APIs SOAP
Elas utilizam protocolo XML para comunicações mais seguras e complexas. São ideais para transações detalhadas, como seguir regras rigorosas para fazer um pedido de pizza específico.
Um exemplo comum de uma API SOAP é a API de um serviço bancário. Quando você realiza uma compra online e opta por pagar com transferência bancária, o site da loja se comunica com o banco através de uma API SOAP.
A loja envia uma solicitação detalhada em formato XML com suas informações de pagamento, e o banco responde confirmando a transação, também em XML.
Esse processo seguro e estruturado garante que a transação seja realizada corretamente e com a segurança necessária.
APIs GraphQL
Permitem que o cliente solicite exatamente os dados necessários, sem excesso. É como escolher exatamente os ingredientes de uma pizza personalizada.
Um exemplo ilustrativo de uma API GraphQL é a API do GitHub.
Ao utilizar um aplicativo de gerenciamento de projetos conectado ao GitHub, este pode aproveitar a API GraphQL para obter detalhes específicos sobre os repositórios do usuário.
Ao enviar uma solicitação customizada, o aplicativo requer apenas os dados necessários, como o nome do repositório, número de commits e issues em aberto.
Em resposta, a API GraphQL fornece precisamente essas informações, garantindo uma comunicação eficiente e direcionada.
APIs de WebSocket
Essas permitem comunicação bidirecional em tempo real entre o cliente e o servidor. É como conversar com o pizzaiolo em tempo real enquanto ele prepara sua pizza, ajustando os ingredientes conforme você pede.
São utilizadas em aplicativos de chat em tempo real, como o Discord. Quando você envia uma mensagem para um amigo em um servidor do Discord, essa mensagem é transmitida instantaneamente através da API WebSocket.
Essa comunicação bidirecional permite que as mensagens sejam enviadas e recebidas em tempo real, proporcionando uma experiência de chat fluida e interativa, sem a necessidade de atualizar a página constantemente.
APIs BFF (Backend For Frontend)
As APIs BFF (Backend For Frontend) são usadas quando diferentes partes do mesmo aplicativo, como a versão web e mobile, precisam de dados diferentes do servidor.
O BFF serve como um intermediário entre o front-end e o back-end, garantindo que cada parte receba exatamente o que precisa.
Por exemplo, se um aplicativo móvel e uma versão web de um site precisam de informações diferentes do servidor (pois normalmente a versão web traz mais informações mesmo), cada um terá seu próprio BFF para fornecer esses dados de maneira eficiente.
Isso ajuda a simplificar e organizar a comunicação entre o cliente e o servidor, tornando a experiência do usuário mais rápida e eficaz.