In this Article
Você provavelmente já viu a abreviação “API” dezenas de vezes. Se você já pagou algo online ou usou um agregador de dados, já usou essa API mística. Mas o que é isso? Neste artigo, analisamos o que são APIs, quais protocolos de API existem e quais tipos de APIs existem.
O que é uma API e como ela funciona?
Application Programming Interface é um intermediário de software que permite que aplicações distintas se comuniquem. As APIs pertencem principalmente ao backend dos sistemas, então você não vê seu funcionamento e muitas vezes nem sabe que as está usando agora.
Por exemplo, você visita seu site de notícias favorito e vê a previsão do tempo de hoje. Outros sites semelhantes provavelmente oferecem a mesma informação. Mas de onde eles obtêm esses dados? Obviamente, agências de notícias não têm suas próprias estações meteorológicas para fazer previsões. Em vez disso, obtêm dados de um centro de meteorologia. Ao mesmo tempo, um site precisa entregar a você uma previsão precisa e relevante para sua localização, e milhares de visitantes de dezenas de lugares estão acessando esse veículo de notícias específico simultaneamente com você. Desenvolvedores ou administradores de sites não conseguem fornecer ou atualizar previsões manualmente para cada visitante. Em vez disso, usam uma API. Toda vez que você abre esse site para ler notícias, ele usa uma API para “chamar” um app de meteorologia, saber o clima da sua localização e mostrar a resposta do app. É semelhante a pegar seu telefone e discar o número de um amigo para entrar em contato com ele. Uma API é um análogo de um “número de telefone” que apps usam para se contatar.
APIs são populares e amplamente usadas por bons motivos. Primeiro, elas simplificam o processo de desenvolvimento. Desenvolvedores não precisam reinventar a roda; em vez disso, podem usar a mesma API em muitos projetos. Isso acelera o processo de desenvolvimento e, consequentemente, economiza tempo e custos. Com APIs, os apps não invadem os processos uns dos outros; eles apenas obtêm os dados necessários. Como resultado, isso beneficia a segurança, reduz a probabilidade de erros e contribui para o funcionamento fluido dos programas.
Além disso, APIs permitem que diferentes sistemas se comuniquem independentemente de suas tecnologias e estruturas subjacentes. Para os usuários, APIs significam uma ampla lista de funções.
Quando falamos sobre APIs, geralmente nos referimos a APIs web, ou seja, aquelas que exigem conexão com a internet. No entanto, algumas APIs são usadas dentro de um único sistema e dispositivo (por exemplo, o sistema operacional de um computador) e nunca precisam de conexão com a internet. Neste artigo, focamos em APIs web.
Componentes das APIs
Vamos olhar um pouco mais de perto por trás dos bastidores. Do que é composta essa peça de código chamada API?
A ideia principal por trás de qualquer API é a interoperabilidade. Em outras palavras, qualquer plataforma que ofereça suporte ao formato escolhido deve conseguir interagir com uma API da mesma forma. Portanto, mesmo com diferentes desenvolvedores e vários protocolos em uso, os componentes-chave das APIs são os mesmos.
Cliente de API
Um cliente de API é qualquer app, navegador ou software que faz solicitações. Diferentes coisas podem acionar um cliente para enviar uma solicitação. Por exemplo, ações de um usuário, como atualizar uma página ou pressionar um botão, podem acionar um cliente para enviar uma solicitação. Condições que ocorrem no final e são baseadas em lógica automatizada, como consultas a bancos de dados, também podem servir como gatilhos.
Solicitação de API
Solicitações de API precisam seguir o mesmo padrão. Normalmente, elas contêm cinco elementos principais:
Endpoints
Em relação às APIs, endpoints são URLs para as quais você direciona suas solicitações. Para saber quais endpoints estão disponíveis e qual formato você deve usar, é preciso verificar cuidadosamente a documentação da API, onde o fornecedor da API especifica todos os detalhes. Normalmente, os endpoints contêm o nome de domínio e a versão de uma API que você usa. Eles também podem conter vários parâmetros de consulta. Novamente, a documentação da API inclui informações sobre os parâmetros disponíveis.
Método
Na sua solicitação, você deve dizer a um servidor o que deseja que ele faça. Portanto, um método é um comando para um servidor que informa o que fazer. Os métodos diferem dependendo do protocolo de API que você usa. Por exemplo, o protocolo REST usa métodos HTTP como GET, POST, PUT, PATCH e DELETE. Outros protocolos têm seus próprios métodos. Se você vai usar uma API, leia sua documentação, onde um fornecedor esclarece qual protocolo e quais métodos essa API específica usa.
Parâmetros
Além dos parâmetros de consulta, também existem parâmetros de caminho, parâmetros de cabeçalho e parâmetros do corpo da solicitação. Eles são necessários para autenticação, filtragem da sua solicitação e envio dos detalhes necessários para um servidor receptor. Enquanto o método informa ao servidor o que fazer, por exemplo, recuperar dados, os parâmetros ajudam a especificar o que ele deve enviar a você.
Cabeçalhos
Cabeçalhos em uma solicitação de API cumprem uma função clássica: fornecem dados adicionais sobre a solicitação e os formatos de resposta desejados, detalhes de autorização para provar que você tem permissão para realizar as ações solicitadas e detalhes sobre como armazenar solicitações e respostas em cache.
Corpo da solicitação
Esse é o coração das suas solicitações, onde você fornece todos os dados primários usando parâmetros da solicitação. Para entender melhor, imagine uma encomenda. Endpoints são o local para onde você quer que sua encomenda seja enviada. Parâmetros e cabeçalhos são outros dados de envio, como o nome e o número de telefone do destinatário, com detalhes adicionais, como se sua encomenda contém itens frágeis ou se a entrega está paga ou deve ser paga pelo destinatário. O corpo da solicitação é como uma encomenda, o conteúdo da caixa, as coisas que você envia. Como mencionado, o corpo da solicitação contém diferentes parâmetros que um fornecedor de API especifica na documentação.
Servidor de API
Servidor de API é uma plataforma, software, banco de dados ou qualquer coisa para a qual enviamos nossas solicitações. Ele fornece a API, armazena todos os dados da API e executa as ações que especificamos em nossas solicitações.
Resposta da API
Onde há uma solicitação, também há uma resposta. Uma resposta é o que um servidor envia mediante sua solicitação. Respostas também consistem em vários blocos de construção.
Código de status
O código de status indica se nossa solicitação foi bem-sucedida e se um servidor conseguiu processá-la. Códigos na faixa 200 significam que uma solicitação foi bem-sucedida, 300 significam redirecionamento, 400 indicam que houve problemas com uma solicitação e 500 significam que houve um problema do lado do servidor.
Cabeçalhos de resposta
Cabeçalhos de resposta são semelhantes aos cabeçalhos de solicitação. Eles enviam cookies para um cliente e fornecem detalhes sobre o corpo da resposta.
Corpo da resposta
O corpo da resposta compreende uma série de pares chave/valor que fornecem os dados solicitados. No entanto, o corpo da resposta não é um componente necessário de uma resposta de API. Se você quisesse que um servidor recuperasse alguns dados e os enviasse a você, receberia uma resposta. Ao mesmo tempo, se você tentar excluir ou substituir dados em um servidor, não verá um corpo de resposta; receberá apenas um código de status.
Protocolos de API
Um protocolo é um conjunto de regras que define como uma API funciona. Vários protocolos são usados para APIs.
REST
REST (ou RESTful, The Representational State Transfer) é o protocolo de API mais usado. No entanto, é mais um estilo arquitetural do que um protocolo. Ele se baseia no protocolo HTTP para transferir dados nos formatos JSON ou XML. As solicitações são independentes umas das outras, e as respostas podem ser armazenadas em cache. Simplicidade e escalabilidade são as principais vantagens do REST, e é por isso que ele é a principal escolha para serviços web e aplicações móveis.
Por outro lado, pode ocorrer over-fetching ou under-fetching, fazendo com que um cliente receba mais dados do que solicitou ou, ao contrário, não receba todos os dados necessários. Além disso, como REST usa o protocolo HTTP, pode não ser adequado para todos os tipos de dados, aplicações e ambientes. REST também traz preocupações de segurança; pode ter vulnerabilidades se não for mantido corretamente.
SOAP
Simple Object Access Protocol, ou SOAP, é muito mais rígido e complexo do que REST. Ele usa o padrão de dados XML e pode oferecer suporte a vários protocolos para transferência de dados, incluindo HTTP e SMTP. Ele oferece suporte a recursos avançados de segurança, como WS-Security. É usado principalmente para casos que exigem segurança e formalidade em detrimento da usabilidade por um grande público, como serviços financeiros ou aplicações empresariais como Salesforce.
RPC
O protocolo remote procedure call processa dados nos formatos JSON e XML. No entanto, ele difere drasticamente de REST e SOAP porque chama um método em vez de uma fonte de dados. A resposta RPC indica que uma ação foi acionada ou falhou. Como chamar um servidor RPC altera o estado de um servidor, é necessário ter um alto nível de segurança entre fornecedores e usuários. Com tudo isso, APIs RPC costumam ser privadas. No entanto, RPC depende do protocolo HTTP/2 para transferir dados, que não é suportado nativamente na maioria dos navegadores, então você pode precisar de equipamento adicional para garantir que funcione corretamente.
GraphQL
Embora GraphQL seja chamado de protocolo, ele é uma linguagem de consulta. Ao contrário de REST, que tem vários endpoints, GraphQL geralmente tem apenas um. GraphQL torna possível fazer várias solicitações em uma única consulta. Usuários podem especificar quais dados precisam, evitando over-fetching ou under-fetching. Por outro lado, GraphQL tem alguns desafios com cache de dados. Além disso, fornecedores devem fornecer documentação extensa para informar aos usuários quais parâmetros existem para que possam fazer uma consulta.
Tipos de APIs
Existem várias formas de categorizar APIs: por seu público-alvo ou por estrutura. Se falamos sobre o público, elas podem ser públicas, de parceiro e privadas, ou podem ser compostas, unificadas, de microsserviços e monolíticas se julgarmos pela estrutura.
APIs públicas
Também chamadas de abertas ou externas, APIs públicas são projetadas para um público amplo. Elas não têm restrições ou têm poucas restrições; mesmo que exijam autenticação ou registro, é um processo simples, e os usuários não precisam ter qualificações para usar essa API. No entanto, APIs abertas ainda podem exigir pagamentos ou limitar recursos para contas gratuitas. Por exemplo, Google Maps API é uma API pública.
API privada
Esse tipo de API também é chamado de API interna. Ele é direcionado a um pequeno grupo de usuários, como pessoas dentro de uma empresa. Usuários precisam de permissão para acessar essas APIs. Elas devem ser seguras, então a autenticação pode levar tempo e ser complexa.
API de parceiro
APIs de parceiro ficam entre públicas e privadas. Seu principal caso de uso é o compartilhamento de dados entre duas empresas ou negócios, então essas APIs ainda exigem autenticação e são seguras. Elas também são direcionadas a um grupo de usuários, mas esse grupo é maior do que no caso das APIs privadas. As informações compartilhadas por meio dessas APIs são importantes e definitivamente não são para um público amplo, mas ainda não são tão secretas quanto os dados compartilhados por APIs privadas.
Além disso, às vezes, o quarto tipo — OpenAPI Standard — é mencionado. No entanto, não é outro tipo de API, mas um framework para escrever APIs públicas. Seu nome original era Swagger, e essa ferramenta fornece diretrizes, então escrever uma API e depois usá-la se torna mais simples e rápido. No entanto, também é impreciso chamar APIs públicas de ” open APIs”, pois nem todas as APIs públicas seguem o padrão. Além disso, APIs privadas podem usar o padrão OpenAPI mesmo sem estarem disponíveis publicamente.
APIs monolíticas
Essas APIs são criadas como uma única base de código que concede acesso a uma fonte complexa. Suas vantagens incluem funcionalidade previsível e estabilidade. Por outro lado, são difíceis de escalar ou atualizar, pois muitos dados estão conectados, e alterações podem causar consequências imprevisíveis.
APIs de microsserviços
Ao contrário, APIs de microsserviços têm cada API servindo a um propósito diferente e específico. É fácil atualizá-las ou desligar partes que não são mais necessárias sem afetar todo o sistema. No entanto, APIs de microsserviços produzem uma quantidade enorme de solicitações individuais.
APIs compostas
É aqui que APIs compostas entram em cena. Elas podem atingir vários endpoints em uma única chamada, identificando o conjunto de chamadas mais eficaz, fornecendo a você os dados necessários e evitando código duplicado.
APIs unificadas
APIs unificadas são semelhantes às compostas; em vez de solicitar diferentes endpoints em uma única API, elas solicitam várias APIs. A escolha depende das suas necessidades.
Teste e monitoramento de API
Como qualquer outro software, APIs exigem teste e monitoramento para garantir estabilidade, segurança e desempenho de alto nível. Você pode testar APIs manualmente ou realizar testes automatizados. Existem vários tipos de teste de API:
- teste funcional – para garantir que um servidor responda a solicitações e que respostas e formatos de dados estejam corretos;
- teste de carga – ajuda a validar se uma API funciona corretamente quando ocorrem picos de tráfego;
- teste de segurança – necessário para garantir que nenhuma brecha para golpistas seja deixada;
- teste de regressão – quando alterações são feitas, o teste de regressão é necessário para garantir que não ocorram consequências inesperadas e indesejadas;
- teste de tolerância a falhas – bom para verificar como um sistema responde a solicitações potencialmente nocivas, como aquelas que podem levar a um ataque DDoS.
Desenvolvedores realizam testes de API durante as etapas de desenvolvimento e implantação.
Para concluir
Uma API é outra ferramenta que ajuda você a aproveitar ao máximo as tecnologias. Embora você muitas vezes a use sem sequer perceber, muitas funções no seu site ou app favorito são possíveis graças às APIs. Por sua vez, DataImpulse está sempre aqui para explicar tecnologias em linguagem simples, para que você se sinta confortável. Além disso, potencializar uma ferramenta com outra pode dar o melhor resultado. Por exemplo, o teste de API se torna muito mais produtivo com proxies. Também desenvolvemos nossa API, para que você possa usá-la para revender nossos proxies e ganhar dinheiro conosco. Para saber mais, escreva para nós em [email protected] ou pressione o botão “Experimente agora” no canto superior direito da tela.
