O que são APIs e requisições HTTP ?

Rully Alves
3 min readJul 8, 2019

--

Umas das dúvidas que mais vejo de iniciantes e pessoas que vieram de áreas diferentes da programação é : O que são APIs ? Rest ? Nesse post, procuro explicar o que são APIs, focando principalmente em APIs Rest e seus conceitos.

APIs

O conceito de API é tido como Application Programming Interface (interface de programação de aplicações), trata-se de um conjunto de métodos e padrões estabelecidos em uma aplicação de forma que consiga entregar funcionalidades, recursos e serviços de forma simplificada a outras aplicações, que não precisam conhecer a implementação interna dessas funcionalidades, assim escondendo a complexidade dos métodos da API, que existe com o intuito de fornecer uma fachada amigável para acesso a funcionalidades que variam de simples á complexas.

Assim sendo, as APIs proporcionam interoperabilidade entre aplicações diferentes, proporcionando assim que uma aplicação possa utilizar funcionalidades de diversas outras, assim permitindo a comunicação entre aplicações e usuários, um exemplo disso é um aplicativo mobile acessando a API do Github para obter repositórios e outros dados.

Abaixo, podemos ver um exemplo do funcionamento de uma API, onde a aplicação do cliente (independente de ser desktop ou mobile)acessa diferentes métodos de outra aplicação, sem necessitar de conhecer a sua implementação:

Representações de dados

Agora que já sabemos que uma API permite a interoperabilidade entre usuários e aplicações, e com isso a troca de dados entre diferentes aplicações e usuários, isso reforça que necessitamos de um padrão para a representação dos dados que serão transmitidos que seja legível tanto para máquinas quanto para humanos. Atualmente, o padrão mais utilizado para a troca de dados entre diferentes APIs é formato JSON (Javascript Object Notation), existem também APIs que representam dados utilizando XML, porém seu número é bem menor.

Abaixo, temos um exemplo de JSON como representação de dados:

{
"email":"luke@gmail.com",
"username":"luke skywalker",
"age":"21"
}

Representação utilizando XML:

<address><street>Rua Visconde de Rio Branco</street><city>Niterói</city></address>

HTTP

O HTTP(Protocolo de transferência de hipertexto), esse sistema é a base da comunicação que existe em toda a Internet em que os sites e conteúdos que tragam hiperlinks possam ser encontrados mais facilmente pelo público por meio de um clique do mouse ou um toque na tela.

Qualquer servidor que você escolha para hospedar um site ou API Rest tem um programa projetado para receber solicitações HTTP. Portanto, o navegador que você usa é um cliente HTTP que envia solicitações constantemente ao seu servidor.

Assim, quando um usuário acessa ou digita a URL do seu site, o navegador cria uma solicitação HTTP e a envia ao endereço de IP indicado pela URL. Dessa forma, o servidor recebe essa solicitação e envia os arquivos associados que, nada mais são, do que os sites que acessamos na Internet.

O HTTP nos fornece alguns verbos que possibilitam que possamos fazer requisições para que possamos recuperar, criar, atualizar e deletar dados, de todos os verbos HTTP, iremos abordar os principais:

  • GET : o verbo HTTP GET é utilizado para a leitura de dados
  • POST : o verbo HTTP POST é normalmente utilizado para a criação de novos dados
  • PUT: o verbo HTTP PUT é utilizado para atualizar dados
  • DELETE : o verbo HTTP DELETE é utilizado para excluir dados

Abaixo temos um exemplo de requisições HTTP utilizando esses verbos:

Pela simples leitura (mesmo o método GET e DELETE sendo em inglês) é possível saber que no primeiro caso estamos recuperando (GET) todos os usuários da API, ou seja, teremos uma lista de todos os usuários que estão cadastrados no sistema/site. Já, no segundo caso, estamos adicionando (POST) um novo usuário no sistema, no terceiro exemplo estamos atualizando (PUT) o nome do usuário de id 1 e no último exemplo estamos deletando (DELETE) o usuário de id 1.

É extremamente simples expressar o que desejamos realizar ao acessar um determinado endereço, usando verbos específicos para URLs específicas e usando dados padronizados, quando necessário.

Chegamos ao fim, espero ter conseguido passar algum conhecimento sobre APIs e requisições HTTP, se você gostou, deixe o seu clap, críticas e sugestões são bem vindas.

--

--