O que é uma API?

 

Header

Conectividade é algo incrível. A tecnologia unificou o mundo, hoje podemos acessar dados a qualquer hora de qualquer lugar do mundo, de nossos computadores pessoais ou aparelhos móveis. Do seu Smartphone, por exemplo, você pode checar horários de voos, consultar o clima da sua região, postar em redes sociais e até mesmo realizar compras, com apenas alguns cliques na tela do seu celular. Tudo está de alguma forma conectado, mas você sabe como isso funciona exatamente? Como uma informação do outro lado do mundo é capaz de chegar até a tela do seu celular? Como diferentes plataformas, dispositivos e aplicações conseguem se comunicar? A resposta para essas perguntas é uma ferramenta, chamada de API (×Pi×Ai) ou também Application Programming Interface. Chamada no Brasil de Interface de Programação de Aplicação, a API é a ferramenta responsável pela conectividade e interação presente no mundo atualmente. Mas o que é exatamente uma API? Qual é a sua definição? Como funciona?

 

O que é API?

 

Segundo o Free Online Dictionary of Computing (1994) API é uma ferramenta que que realiza comunicação entre aplicações que desejam compartilhar suas rotinas, ferramentas, padrões e protocolos. É uma espécie de mensageiro entre dois ou mais sistemas, exemplificando de maneira familiar, a API é como um garçom de um restaurante. O cliente, neste caso a aplicação que deseja receber os serviços, recebe do garçom o menu com todos os itens daquele restaurante. Ao escolher uma opção o garçom leva este pedido até a cozinha, aplicação da API, onde por sua vez os cozinheiros, que são os serviços compartilhados pela aplicação, realizam o pedido como foi descrito pelo cliente. Ao concluir o pedido o cozinheiro avisa o garçom, este por sua vez entrega o pedido ao cliente completando o processo de exemplificação uma requisição de API. A Figura 1 representa a troca de dados entre o “cliente” e a “cozinha”.

Figura 1 - Exemplo do Restaurante
Figura 1 – Exemplo do Restaurante

API, portanto, é uma interface software-to-software, isso quer dizer que o usuário não vê o processo de pedido ou de resposta. Tudo que o usuário vê é uma integração entre sistemas diferentes, de modo que ele consegue realizar várias ações em um único lugar. Por exemplo, todos nos alguma vez já procuramos por passagens áreas. Existem muitas companhias e cada uma possui seu próprio site em que podemos procurar por assentos de seus voos de acordo com nossas preferencias. Mas alguns sites reúnem pesquisas de diversas companhias áreas ao redor do mundo em um só lugar. Esses sites usam APIs de diversos sites para consultar os melhores assentos e preços entre diversas companhias. Eles realizam dezenas de requisições quando o usuário insere uma nova pesquisa, todas essas requisições chegam nos servidores das companhias áreas que retornam o resultado ao servidor deste site. Desta forma, tudo que o usuário vê são vários assentos de várias companhias áreas em um único lugar.

Rest

O que é REST API?

 

Nós programadores escutamos muito falar de Google API, Facebook API e Twitter API. No geral são API, funcionando como mencionado acima, mas o formato que essa troca de dados é feita é diferente em API do tipo REST. Essas API chamadas de REpresentative State Transfer, são API bem populares, funcionando basicamente como um serviço web, onde um cliente realiza uma chamada para um servidor e este por sua vez entrega uma resposta, a exclusividade é a comunicação via protocolo HTTP (POST/GET). A principal diferença deste tipo de API e como funciona a resposta entre servidor e cliente. As principais empresas adotam este tipo de API por serem mais populares entre os desenvolvedores. Deste modo há um padrão de uso no mercado, facilitando todo o processo de conectividade anteriormente citado.


Para exemplificar um pouco melhor este tipo de API, em especifico, vamos realizar um exemplo prático utilizando o Graph API do GoogleMaps:

1. Ao acessar via navegador o domínio:

https://www.google.com.br/maps/place/Curitiba+-+PR/

Ao acessar, somos redirecionados a uma página que qualquer usuário de Google Maps está familiarizado, vemos o mapa da cidade de Curitiba, em que podemos ver dados como nome de ruas e bairros.

2. Deste mesmo modo agora, se acessarmos o link abaixo estaremos fazendo uma requisição ao Google Maps para a API Geocode com formato de resposta JSON, JavaScript Object Notation, do endereço da cidade de Curitiba. Estes dados são chamados de parâmetros e são essenciais para se obter um resultado mais filtrado durante uma chamada de API.

http://maps.googleapis.com/maps/api/geocode/json?address=curitiba&sensor=false

Realizando a requisição acima, o servidor irá responder no formato JSON com todos os principais dados sobre o endereço. A resposta pode também ser vista abaixo:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Curitiba",
               "short_name" : "Curitiba",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Curitiba",
               "short_name" : "Curitiba",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "State of Paraná",
               "short_name" : "PR",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Brazil",
               "short_name" : "BR",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Curitiba, Curitiba - State of Paraná, 
Brazil",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : -25.346995,
                  "lng" : -49.1897636
               },
               "southwest" : {
                  "lat" : -25.6432382,
                  "lng" : -49.38983289999999
               }
            },
            "location" : {
               "lat" : -25.4289541,
               "lng" : -49.267137
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : -25.346995,
                  "lng" : -49.1897636
               },
               "southwest" : {
                  "lat" : -25.6432382,
                  "lng" : -49.38983289999999
               }
            }
         },
         "place_id" : "ChIJ3bPNUVPj3JQRCejLuqVrL20",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

3. Com o resultado da nossa requisição, podemos analisar esses dados de maneira melhor. Primeiramente temos os dados chaves que estão entre aspas e antes de dois pontos, quando existir. As chaves servem para nos mostrar qual é o tipo de dado que virá, da mesma maneira que as variáveis em um código, que recebem um tipo ao serem declaradas. Por exemplo, para sabermos as coordenadas desta cidade basta olharmos para a chave results, depois geometry e por último location, assim como está destacado ali em cima. Assim foi possível tirar dados importantes de nossa requisição, como a latitude de longitude do endereço que foi pesquisa. Se você quiser, tente diferentes nomes de cidades, estados e países para ver como os dados são gerados pela API.


Portanto, as API juntar vários serviços em um único lugar, melhor dizendo, para que dois serviços possam se interagir, como visto anteriormente no caso do site de passagens. Isso também vale para todos os outros milhões de sites na internet que realizam a mesma interação entre si, compartilhando seus dados e serviços para proporcionar este efeito em que parece que tudo está conectado de alguma forma. Desta forma é assim que a conectividade é criada, então toda vez que você precisa se lembrar de como um API funciona, lembre-se do nosso exemplo do restaurante, de modo que as mensagens são encaminhadas entre dois destinos por um “serviço”, neste caso, a API.

Gostou da nossa matéria? Deseja saber um pouco mais? Então não esqueça de acessar nosso canal do YouTube com mais vídeos sobre tecnologia e acessar diariamente o blog e se manter informado sobre as principais notícias relacionadas a nossa área. Até a próxima.

Créditos: MuleSoft & WebConcepts

O que é uma API?

Aluno do 5º ano do curso de Engenharia da Computação da Universidade Positivo e estagiário do Núcleo de Computação Embarcada.

Classificado como:                                        

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *