O que é API e como funciona?

Matheus Mota
Editorial 20 21
Published in
8 min readOct 18, 2021

No mercado de trabalho de tecnologia é muito comum você escutar a palavra API em qualquer tipo de aplicação tanto web como mobile. Isso ocorre, pois, as API’s são uma boa maneira de realizar algumas tarefas, sem a necessidade de desenvolver toda uma rotina de tarefas do zero, ou como gosto de pensar, você não vai estar “reinventando a roda”.

Um exemplo de uso de API é quando você faz compras online. É muito comum vir o valor do frete quando você está para comprar um produto. O cálculo do frete, geralmente, é algo feito por API’s especializadas nesse serviço. Por exemplo, a ShipEngine API é uma API que realiza o cálculo de fretes de produtos e vende isso como um serviço.

Além de cálculo de fretes, há API’s que devolvem letras de músicas, traduzem textos, realizam transações bancárias e muito mais.

O que é API?

Uma vez mostrado alguns exemplos de aplicações de API’s é importante no momento responder a pergunta do que seria a API. Contudo, essa pergunta não tem uma resposta certa, pois o mundo das API’s é muito vasto e não se aplica somente a realização de um serviço específico.

Algo que é possível responder claramente é o significado da sigla API, que é Application Programming Interface, ou em português Interface de Programação de Aplicativo.

Uma boa explicação de como ela funciona é que a API é um intermediário de software que permite que dois aplicativos se comuniquem. Talvez ainda esteja confuso como ela faz essa comunicação, então vou dar uma explicação como exemplo.

Imagine que você esteja usando o seu aplicativo. O que é fato é que como o aplicativo está conectado à internet ele envia dados para um servidor. O servidor então recupera esses dados, os interpreta e executa as ações necessárias e os envia para o aplicativo do seu celular. O aplicativo interpreta esses dados e apresenta essas informações na tela.

Se ainda está confuso, vamos tomar um aplicativo de reservar viagens de ônibus. Para começar a fazer uma reserva, você primeiro tem que informar o local de partida, o local de destino e a data. Depois você é mandado para escolher opções de horários disponíveis e um assento. Por último você informa alguns dados pessoais e realiza o pagamento. Para reservar a passagem, você interage com o aplicativo da companhia de ônibus para acessar o banco de dados e ver se há ônibus e assentos nele disponíveis nessas datas e quais os custos da viagem.

No entanto, se você não estiver usando o aplicativo da companhia de ônibus ou um canal com acesso direto às informações? E se você estiver usando um serviço de viagens, que agrega informações de vários bancos de dados de companhias aéreas?

O serviço de viagens, neste caso, interage com a API da companhia de ônibus. A API é a interface que pode ser solicitada por esse serviço de viagens online para obter informações do banco de dados da companhia para reservar os assentos. A API então leva a resposta da companhia à sua solicitação e a entrega corretamente de volta ao serviço de viagens, que mostra as informações mais atualizadas e relevantes.

Conseguiu entender como a API funciona? Já dá para imaginar a quantidade de possibilidades que a são possíveis usando as API’s, mas não para por aí.

Além de servir como um canal de comunicação para aplicativos, ela também pode ser usada em aplicações de Cloud, Maching Learning, Inteligência Artificial, Big Data e muito mais.

API no Windows?

Você sabia que o próprio windows, provavelmente o sistema operacional que você está usando enquanto lê esse artigo, também tem uma API?

Ela se chama WinAPI e é o conjunto principal de interfaces de programação de aplicativos da Microsoft voltados para os sistemas operacionais Windows. O nome API do Windows refere-se coletivamente a várias implementações de plataforma diferentes que costumam ser chamadas por seus próprios nomes (por exemplo, API do Win32). Quase todos os programas do Windows interagem com a API do Windows. Na linha de sistemas operacionais Windows NT, um pequeno número (como programas iniciados no início do processo de inicialização do Windows) usa a API nativa.

Interessante, não? Provavelmente você nunca imaginou que seu computador já estivesse usando várias API’s.

API RESTful

Você já deve ter escutado esse nome de algum lugar pela internet, ou se não escutou, deve ter visto essas duas palavras separadas.

Bom, eu já defini o que é API, mas antes de explicar o que é API RESTful vou explicar um pouco do que é REST.

REST é uma sigla que significa Representational State Transfer, ou em português Transferência de Estado Representacional. Isso é uma abstração da arquitetura web, mas simplificadamente consiste em princípios ou regras que permitem a criação de um projeto com interfaces bem definidas, possibilitando a comunicação entre as aplicações.

Qualquer serviço da web que obedeça às restrições REST são informalmente descritos como RESTful. Esse serviço da Web deve fornecer seus recursos da Web em uma representação textual e permitir que eles sejam lidos e modificados com um protocolo sem estado e um conjunto predefinido de operações, já mencionado no REST. Com isso, API RESTful é uma interface que fornece dados em um formato padronizado baseado nessas operações.

Essas operações, também conhecidas como verbos ou simplesmente de métodos HTTP, tem a função de identificar a finalidade de uma requisição. Esses métodos são GET, POST, PUT, PATCH, DELETE…

  • GET: A requisição faz um pedido de dados para a API. A API vai buscar os dados solicitados em algum banco e, geralmente, retorna em formato JSON;
  • POST: Tipo de requisição utilizada para criar um recurso em uma determinada API. São chamados recursos os objetos que estão sendo tratados naquela API.
  • PUT: Requisição utilizada para atualizar o recurso indicado com alguma informação.
  • PATCH: Requisição feita para atualização de somente uma parte de um recurso.
  • DELETE: Requisição para excluir um dado.

Quando é feita uma requisição utilizando um desses métodos é importante saber que a API executa isso até que ele seja completo.

Uma pergunta que você pode estar fazendo é como é possível fazer essas requisições, mas a resposta não é tão complexa. Ela utiliza Endpoints, que são URL’s específicas para a realização dessas requisições.

Por exemplo, vamos pegar a API do Musixmatch. Nessa API, uma vez feito o cadastro, você recebe uma chave de API. A partir dessa chave você pode utilizar a própria interface deles que se comunica com a API deles.

Você coloca sua chave de API no Botão Authorize e agora você pode fazer algumas requisições a partir da interface.

Vou fazer uma requisição do tipo GET para em lyrics usando a rota /matcher.lyrics.ge. Na figura abaixo eu destaquei em azul a opção que escolhi.

Uma vez estando nessa opção, você nota que há dois parâmetros, que deixei em vermelho, chamados q_track e q_artist.

Se você escrever no campo em branco ao lado do q_track a música “new york”, escrever no outro campo em branco ao lado do q_artist o artista “frank sinatra” e apertar no botão Try it out! você notará algo interessante.

No campo REQUEST URL você vai ter algo assim:

https://api.musixmatch.com/ws/1.1/matcher.lyrics.get?format=jsonp&callback=callback&q_track=new%20york&q_artist=frank%20sinatra&apikey=your_api_key_here

O Endpoint utilizado para essa API é feito por essa URL.

Se você trocar os valores de q_track e q_artist por outros valores você obterá outra URL.

Teste colocar essa URL, com sua chave de API, no campo de pesquisa do browser. Você vai obter algo assim:

callback({“message”:{“header”:{“status_code”:200,”execute_time”:0.47052097320557},”body”:{“lyrics”:{“lyrics_id”:8841261,”explicit”:0,”lyrics_body”:”Start spreading the news\nI am leaving today\nI want to be a part of it\nNew York, New York\n\nThese vagabond shoes\nThey are longing to ...

Essa é a resposta que a API te dá ao realizar uma requisição do tipo GET para essa rota. O formato de entrega desse resultado é, em campo callback, um JSON. Talvez não esteja claro no momento, mas se você tentar formatar no site da jsonformatter você vai obter algo mais parecido com um JSON.

Características presentes em uma API

Essa API que usamos possui características do que muitas outras API’s fazem. As características mais importantes em uma API, começando pelos Endpoints, são o que chamamos ABC. Essa sigla significa Adress, Binding e Contract, em português fica Endereço (URL), Ligações (Canais) e Contratos (Serviços).

O endereço que indica onde o terminal pode ser encontrado. A ligação que especifica como um cliente pode se comunicar com o terminal. Um contrato que identifica as operações disponíveis.

Outra característica das API’s são os métodos de segurança disponíveis. A segurança mais básica é usando o certificado SSL.

Quando um site possui uma chave em cima do painel de busca, isso indica que ele possui a certificação SSL de proteção. Por isso o HTTPS, que significa que está usando os protocolos HTTP com a segurança do SSL. Isso mantém os dados protegidos quando eles estiverem transitando.

Uma última característica é a presença de tokens para acesso à API. Normalmente isso é feito via token, mas o método pode variar dependendo da API que você está usando. Um exemplo clássico é a API do GitHub, que pede, em vez do token, uma autenticação prévia.

Caso queira ver outros métodos, você pode acessar o blog do mandic.

Por fim, temos que citar o formato que os dados virão ao usar uma API. Normalmente o formato é o JSON, mas eles também podem ser XML e YAML. Contudo, no final, é apenas uma estrutura de dados para representar conjuntos de dados.

Ficou com alguma dúvida durante a leitura deste conteúdo? Caso sim, pode me enviar uma mensagem no chat abaixo! Até mais!

--

--