API é uma sigla que se refere a Application Programming Interface (Interface de Programação de Aplicativos). O recurso é utilizado para integrar sistemas e conectar aplicações por meio de rotinas, padrões e protocolos, ao permitir a comunicação entre diferentes linguagens de programação.
O intuito de uma API é trocar dados entre sistemas diferentes, na maior parte das vez essas trocas de dados tem como objetivo automatizar processos manuais e/ou permitir a criação de novas funcionalidades. As APIs funcionam como tradutoras, possibilitando que diferentes aplicativos “se comunicarem” uns com os outros sem a necessidade de intervenção dos usuários.
Isso traz muito mais segurança para os dados, além de reduzir falhas e otimizar tempo, recursos e esforços da empresa por meio da automatização de atividades rotineiras.
Uma empresa pode lançar mão de uma API quando tem a intenção de que outros desenvolvedores de software possam criar produtos e funcionalidades associados ao seu serviço.
É o que acontece, por exemplo, na integração entre apps como Spotify e Instagram, em que é possível compartilhar, sem a necessidade de criar novas interfaces e linguagens, as músicas que estão sendo ouvidas nos Stories.
Veja alguns exemplos de automatizações proporcionadas por APIs:
Preencher planilhas;
Mudar classificações de clientes;
Atualizar endereços;
Enviar e-mails;
Emitir notas fiscais;
Fazer lançamentos contábeis.
Quais são os tipos de API existentes ?
Existem basicamente quatro tipos de API considerando suas políticas de compartilhamento, como veremos abaixo.
1. APIs públicas ou abertas
As APIs públicas são também conhecidas como APIs abertas e estão disponíveis para outros usuários ou programadores utilizarem com restrições mínimas ou, em alguns casos, de forma totalmente acessível.
2. APIs privadas ou internas
As APIs privadas ou internas são ocultadas aos usuários externos e são expostas apenas para os sistemas internos de uma organização. São utilizadas para o desenvolvimento interno da empresa, otimizando a produtividade e a reutilização dos serviços.
3. APIs de parceiros de negócio
As APIs de parceiros comerciais são aquelas que são expostas entre os membros de um acordo comercial. Uma vez que não estão disponíveis para todos, é necessária uma autorização especial para sua utilização.
4. APIs compostas
As APIs compostas utilizam diferentes dados ou APIs de serviços e permitem aos programadores acessar múltiplos pontos finais.
Também podemos dividir as APIs em quatro de acordo com o que oferecem ou com seus casos de uso, como você verá agora.
1. API de dados
As APIs de dados fornecem a vários bancos de dados ou provedores SaaS (Software as a Service ou Software como Serviço) um acesso CRUD (Create, Read, Update, Delete) a conjuntos de dados subjacentes, permitindo a comunicação entre uma aplicação e um sistema de gestão de base de dados.
2. API de sistemas operacionais
Este grupo de APIs define como as aplicações utilizam os recursos e serviços disponíveis do sistema operacional. Assim, cada OS (Operative System) possui um conjunto de APIs, por exemplo, a API do Windows ou a API do Linux possuem kernel-user space API e kernel internal API.
3. APIs remotas
Este grupo define os padrões de interação que as aplicações têm em diferentes dispositivos, ou seja, um software acessa determinados recursos localizados fora do dispositivo requerente, como o nome indica. Como duas aplicações se ligam remotamente através de uma rede, as APIs remotas utilizam protocolos para conseguir a ligação.
4. APIs web
Esta classe de APIs é a mais comum, uma vez que as APIs web fornecem dados que os dispositivos podem ler e transferir entre sistemas baseados na web ou arquitetura cliente-servidor.
Protocolos de API
Os protocolos de API permitem padronizar a troca de dados entre diferentes serviços web. Isto proporciona a oportunidade de acessar capacidades em diferentes sistemas, por meio de diferentes linguagens de programação e em diferentes sistemas operacionais.
Os mais importantes estão listados abaixo:
Remote Procedure Call (RPC)
O chamado de procedimento remoto ou RPC permite que as APIs web possam se aderir aos princípios de intercâmbio de recursos. O objetivo deste protocolo é definir a interação entre aplicações com base num programa que solicita dados - cliente - e outro que os fornece - servidor - remotamente.
Service Object Access Protocol (SOAP)
É um protocolo verdadeiramente leve para o intercâmbio de informação estruturada num ambiente descentralizado e distribuído. As suas especificações contêm as regras de sintaxe dos pedidos e respostas enviadas pelos pedidos.
As aplicações que cumprem estes princípios permitem o envio de mensagens XML entre o sistema via HTTP (Hypertext Transfer Protocol) ou SMTP (Simple Mail Transfer Protocol).
Representational State Transfer (REST)
REST é um estilo de arquitetura de software com seis restrições para a criação de aplicações que correm sobre HTTP, especialmente serviços web.
É considerada uma alternativa SOAP, uma vez que muitos programadores têm dificuldade em utilizá-la porque têm de escrever grandes quantidades de código para realizar uma tarefa. Por outro lado, a REST segue uma lógica diferente, uma vez que facilita a disponibilidade de dados como recursos.
GraphQL
O GraphQL surgiu em resposta à necessidade de desenvolvimento mais rápido, carregamento de dados mais eficiente e maior adaptabilidade móvel.
Esta linguagem de consulta para API permite ao cliente detalhar os dados de que necessita e simplifica a adição de informação por meio de múltiplas fontes.
Tendo em vista o artigo relacionado aos conceitos de APIs e os exemplos citados acima, podemos compreender melhor sua utilidade diante de cada situação, sendo que fornecem um grande número de recursos para reforçar as funcionalidades que oferecem, especialmente as que permitem aos sistemas se comunicarem e implementar soluções que facilitem a integração de sistemas.