Na era digital, a internet se tornou um universo infinito de informações e possibilidades. Para navegar nesse mar de dados, precisamos de ferramentas como navegadores e APIs, que se comunicam através de uma linguagem secreta: os protocolos HTTP e as URLs.

Já se perguntou como isso tudo funciona por trás do panos? Então vem comigo que, neste guia prático, desvendaremos os mistérios dessa comunicação, aprendendo a construir URLs eficazes, interpretar códigos HTTP e dominar APIs com maestria.

Desvendando a anatomia de uma URL

Tudo começa com a URL (Uniform Resource Locator), o endereço único que identifica cada página ou recurso na web. Imagine-a como um mapa que leva você ao destino desejado. Ela é composta por partes distintas, cada uma com um papel crucial:

  • Protocolo: O mensageiro da comunicação, geralmente “HTTP” ou o mais seguro “HTTPS”, sendo este último muito utilizado devido à sua segurança e ao nível de criptografia feito através de um certificado SSL/TLS;
  • Domínio: O endereço principal do site, é o nome amigável que identifica o site, comohttps://www.programaria.org/”. O domínio é composto por algumas divisões, que são:

O próprio protocolo já apresentado;

O subdomínio: o WWW, por exemplo, é um subdomínio opcional;

SLD: second-level domain ou domínio de segundo nível, é o nome principal do domínio. Por exemplo: programaria;

TLD: top-level domain ou domínio de nível superior, é o componente final de um nome de domínio , por exemplo, “.com”, “.org”, “.gov”.

– ccTLD: em tradução é domínio de nível superior de código do país (country code top level domain), como “.br” aqui no nosso Brasilzão.

  • Caminho ou path: a rota específica dentro do site, como “/contato”;
  • Query Params: parâmetros de consulta que fornecem informações adicionais de consulta, como: “?name=maria&country=br”;
  • Route Params: parâmetros de rota utilizados para identificar recursos específicos, como “/user/:id”;
  • Fragmento: parte da URL que referencia uma seção específica do recurso, como “#secao”;

Montando URLs na prática

Construa URLs com propósito, a chave é ser clara e organizada. Utilize palavras descritivas no caminho, separadas por barras (/), e também para os parâmetros.

Vamos supor que estamos construindo nossa aplicação e precisamos definir uma rota para cadastro de participantes em um evento. Como podemos construir essa URL?

Uma possibilidade seria após o domínio definir o path como “/evento/”, pois isso indica que estamos direcionando para a seção de evento (quase como uma estrutura de pastas).

Depois, podemos colocar como route param o id do evento, algo como “:eventId”, para indicar um evento específico.

Por fim, definimos um path final que seria “/participantes” para indicar o caminho das requisições com os dados dos participantes:

http://meu-dominio.com.br/evento/:eventId/participantes.

Query Params vs. Route Params

A escolha entre usar query params ou route params depende do tipo de informação que se está transmitindo:

  • Query Params: utilizados para filtros e buscas, geralmente opcionais, elas podem ser usadas para realizar várias ações, como filtrar dados, ordenar resultados, definir opções de exibição, etc.. Imagine que você quer buscar todas as pessoas usuárias cujo nome é igual a Ada, a URL seria parecida com essa: http://minhaurl.com/users?name=Ada
  • Route Params: usados para identificar recursos específicos, geralmente obrigatórios. Por exemplo, em um cenário onde se quer recuperar os dados de uma pessoa usuária específico a partir do seu identificador único: http://minhaurl.com/users/5

Mas, normalmente, elas andam de mãos dadas, isso porque é possível combinar route params com query params. Assim, consigo fornecer informações personalizadas ou adicionais relacionadas ao recurso apontado pela URL base.

Ok, já conhecemos bem a estrutura de URLs, vamos nos aprofundar um pouco mais em como funciona a comunicação delas com o protocolo HTTP.

HTTP

O protocolo HTTP, ou Protocolo de Transferência de Hipertexto, como já dito, é a base de comunicação entre clientes (como navegadores) e servidores na World Wide Web. E para se comunicar através dele é necessário que haja um cabeçalho com algumas informações e eventualmente um corpo da mensagem.

Cabeçalhos HTTP (Headers)

Os cabeçalhos HTTP são estruturados com pares de chave-valor e são incluídos em solicitações enviadas por clientes e respostas enviadas por servidores. Eles são normalmente colocados no início de uma mensagem HTTP e são separados do corpo da mensagem por uma linha em branco. Cada cabeçalho contém informações como o tipo de conteúdo, data, informações do servidor, etc.

O Corpo da Requisição (Request Body)

O corpo da requisição é onde se enviam os dados principais na requisição HTTP, especialmente em métodos como POST e PUT.

Dominando os Códigos de Status HTTP

Os códigos de status HTTP são respostas do servidor indicando o resultado da requisição. Compreendê-los é essencial para identificar erros e garantir o bom funcionamento da comunicação. Eles são divididos em cinco categorias e aqui apresento os principais:

2xx – Sucesso

Indicam que a requisição foi bem-sucedida. E os principais são:

  • 200 OK: requisição bem-sucedida.
  • 201 Created: recurso criado com sucesso (útil em POST).
  • 204 No Content: indica que o conteúdo foi atualizado com sucesso e não há conteúdo a ser enviado para esta solicitação, normalmente utilizado em chamadas PUT.

3xx – Redirecionamento

Indicam que o cliente deve tomar ações adicionais para completar a requisição.

  • 301 Moved Permanently: recurso movido permanentemente para uma nova URL.
  • 302 Found: recurso encontrado em outra localização temporariamente.

4xx – Erro do Cliente

Erro de alguma informação enviada por quem está fazendo a chamada.

  • 400 Bad Request: requisição inválida.
  • 401 Unauthorized: autenticação necessária.
  • 404 Not Found: recurso não encontrado.

5xx – Erro do Servidor

Indicam que o servidor encontrou um problema ao processar a requisição.

  • 500 Internal Server Error: erro genérico do servidor.
  • 503 Service Unavailable: serviço temporariamente indisponível.

Um site bem completo para consultar esses e todos os outros código de status disponíveis é o Developer Mozilla, disponível neste link:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status.

Agora que já conhecemos as URLs, o HTTP, os headers, body e códigos de status, que tal entender onde aplicar todo esse conhecimento?

Explorando o Mundo das APIs

As APIs (Interfaces de Programação de Aplicações) são pontes que conectam diferentes sistemas, permitindo a troca de dados e funcionalidades. Para usá-las, vamos seguir alguns passos:

  • Defina a ação: o que você deseja realizar (criar, ler, atualizar ou excluir dados)?
  • Identifique o endpoint: localize na documentação da API o endpoint responsável pela ação desejada.
  • Escolha o método HTTP: cada ação utiliza um método específico (GET, POST, PUT, DELETE).
  • Prepare os dados: organize os dados necessários no formato correto (JSON, XML, etc.).
  • Envie a requisição: utilize ferramentas como Postman ou bibliotecas de programação para enviar a requisição à API.
  • Interprete a resposta: analise o código HTTP e o corpo da resposta para verificar o resultado da sua solicitação.

Exemplo Prático: criando uma pessoa usuário em um evento

Imagine que queremos cadastrar uma pessoa usuário em um evento através de uma API. Vamos seguir os passos:

  • Defina a ação: criar um novo usuário.
  • Identifique o endpoint: www.exemplo.com.br/evento/:eventId/paticipantes (aqui substituímos “:eventId” pelo ID do evento).
  • Escolha o método HTTP: POST, pois faremos um cadastro de dados.
  • Prepare os dados:

– Cabeçalho: podemos definir algumas propriedades do cabeçalho, como: Content-Type: application/json Authorization: Bearer <token>

No corpo da requisição, enviamos um JSON com os dados do usuário (nome, email). Por exemplo: {  “name”: “Ada”,  “email”: “ada@example.com“}

  • Envie a requisição: aqui podemos usar o Postman ou Insomnia, por exemplo.
  • Interprete a resposta: neste ponto olhamos para o resultado, o código HTTP 201 indica sucesso e o corpo da resposta deve apresentar o ID do usuário criado.

Conclusão

Dominar URLs, códigos HTTP e APIs abre um mundo de possibilidades na web. Com este guia prático, você está pronte para começar a explorar nesse universo gigantesco da rede universal de comunicação, construindo aplicações poderosas e explorando APIs com total confiança.

Lembre-se:

  • A prática leva à perfeição. Experimente criar URLs, enviar requisições e interpretar respostas para aprimorar suas habilidades.
  • Consulte a documentação das APIs para obter informações detalhadas sobre endpoints, métodos e formatos de dados.
  • Utilize ferramentas como Postman ou bibliotecas de programação para facilitar o desenvolvimento e teste de suas aplicações.
  • Com dedicação e persistência, você será capaz de construir soluções inovadoras e desbravar os infinitos recursos da internet.

Espero que tenha gostado e aprendido coisas novas! Me conta aqui, o que você mais gostou de saber?

Artigo escrito por Nadine Schneider, da Comunidade PrograMaria.

 

REFERÊNCIAS:

Códigos de status de respostas HTTP

HTTP | MDN

Postman

Insomnia REST