Fala brabos e brabas, Bem-vindos ao post sobre Web API! Quem acompanha meus posts sabem que eu gosto de ir direto para a prática, abrindo o Visual Studio e já começando a codificar. Mas, antes de construir qualquer coisa, precisamos ter uma base sólida. Vamos passar por alguns conceitos iniciais extremamente importantes para entender o funcionamento de uma API. Esses detalhes são essenciais e costumam ser esquecidos durante o desenvolvimento.
O Que é API?
Uma API, ou Interface de Programação de Aplicações, é um conjunto de métodos que facilita a vida do programador. Com uma API, conseguimos abstrair muito do código complexo que, sem ela, precisaria ser escrito manualmente em diversos sistemas. Assim como no mundo real, temos coisas que simplificam nossas tarefas, tornando-as mais práticas e acessíveis. Um exemplo que gosto bastante é o da energia elétrica.
Pense na tomada de sua casa. Você conecta o carregador do celular e o aparelho começa a carregar. Você não precisa sair de casa e ir até o centro de distribuição de energia para pegar energia; esse processo foi abstraído para facilitar sua vida. A tomada funciona como uma espécie de intermediário, que traz a energia diretamente para você. É uma forma de API para nós, funcionando como um facilitador.
Outro exemplo comum é o garçom em um restaurante. Quando você quer pedir uma comida, não vai até a cozinha falar diretamente com o cozinheiro. O garçom anota seu pedido, leva à cozinha e depois traz a comida para sua mesa. Ele está agindo como um intermediário entre você e o cozinheiro, facilitando o processo.
O Que é uma Web API?
Uma Web API é uma API que opera sobre a web. Ela não é uma tecnologia nova, mas sim uma extensão da ideia de API, utilizando a internet para realizar suas interações. Vou mostrar aqui um exemplo.
Imagine que você tem um celular ou notebook, e esses dispositivos precisam se comunicar com um sistema para coletar informações. Para isso, utilizam o protocolo HTTP, que é a grande diferença de uma Web API. Esse protocolo permite que seu dispositivo envie requisições e receba respostas do servidor.
A Web API atua como um intermediário que acessa o banco de dados, coleta a informação solicitada e a devolve ao dispositivo no formato JSON. Ah, o JSON é um formato de dados amplamente utilizado, que organiza as informações de uma maneira que o celular ou notebook conseguem entender e processar. Dessa forma, a comunicação é eficiente e simplificada.
Hoje em dia, é raro que um sistema faça uma conexão direta entre a interface de usuário (front-end) e o banco de dados. Isso seria mais comum em sistemas antigos ou em situações específicas. A prática moderna utiliza uma API como intermediário, permitindo que diversos dispositivos possam se comunicar com o sistema e que o sistema ofereça uma interface para integrar com outros aplicativos.
HTTP e Navegadores
HTTP é o protocolo de comunicação usado pelos navegadores para se conectar aos servidores. Por exemplo, quando você digita “google.com.br” no navegador, está utilizando o protocolo HTTP, que conecta o navegador ao servidor do Google e retorna a página HTML para visualização.
Exemplo Prático de Requisição HTTP
Vamos ver um exemplo de uma requisição HTTP em uma API. Suponha que temos uma aplicação, que pode ser um navegador, e essa aplicação precisa carregar dados de usuários. A tela do front-end, ou seja, a interface visual do usuário, precisa buscar informações no servidor. Para isso, ele faz uma requisição HTTP.
Neste exemplo, ele vai utilizar o verbo GET, um dos verbos HTTP que discutiremos mais adiante. O GET é usado para obter dados no servidor. No caso, estamos pedindo ao servidor que traga dados dos usuários. A URL que indicamos ao servidor poderia ser algo como /api/usuarios
. Isso informa ao servidor que queremos acessar a lista completa de usuários.
Quando essa requisição é bem-sucedida, o servidor responde com o código 200 OK, indicando que a operação foi concluída com sucesso. O servidor retorna os dados no formato JSON, que vamos entender melhor agora.
Formato JSON (JavaScript Object Notation)
O JSON é um formato baseado em pares de chave e valor, sendo muito usado em APIs para facilitar a comunicação entre o servidor e os dispositivos. Por exemplo, o JSON pode conter dados como {"id": 1, "nome": "Tiago"}
. Aqui, id
é a chave e 1
é o valor, representando o identificador do usuário. Da mesma forma, "nome": "Tiago"
representa o nome do usuário.
Esse formato é amplamente utilizado porque é fácil de ser interpretado tanto por humanos quanto por máquinas. Durante os testes que faremos na API, vamos receber os dados nesse formato JSON, facilitando a integração com aplicações de front-end, como sites e aplicativos móveis.
Verbos HTTP para Manipulação de Dados
Agora vamos focar em um exemplo do verbo POST. Quando queremos adicionar um novo usuário ao banco de dados, não usamos o GET; usamos o verbo POST. O POST é utilizado para enviar dados ao servidor, como o cadastro de um novo usuário.
Por exemplo, podemos enviar ao servidor um JSON contendo {"nome": "Felipe"}
, e o servidor adiciona esse novo usuário ao banco de dados. Se a operação for concluída com sucesso, ele retorna um código 201 Created, indicando que o recurso foi criado com sucesso.
Principais Verbos HTTP
Além de GET e POST, temos outros verbos HTTP importantes para manipular dados:
- PUT: Usado para atualizar informações completas de um recurso. Por exemplo, se quisermos atualizar os dados de um usuário específico, enviamos uma requisição PUT para a URL
/api/usuarios/{id}
com as novas informações. - PATCH: Usado para atualizar apenas partes de um recurso. Este verbo é ideal para quando queremos modificar apenas alguns campos de um registro, sem precisar enviar todas as informações do usuário.
- DELETE: Usado para remover um recurso. Ao enviar uma requisição DELETE para a URL
/api/usuarios/{id}
, o servidor remove o usuário correspondente ao ID indicado.
Esses verbos são essenciais para o processo de solicitação e resposta entre o cliente e o servidor. Em resumo:
- GET: Recupera dados.
- POST: Envia novos dados.
- PUT: Atualiza dados completos.
- PATCH: Atualiza dados parciais.
- DELETE: Remove dados.
A diferença entre PUT e PATCH é bastante discutida. O PUT substitui todos os dados do recurso, enquanto o PATCH altera apenas alguns campos. Essa distinção é importante, especialmente para entrevistas de emprego, pois é um conceito que frequentemente aparece.
Vamos recapitular alguns dos conceitos abordados, antes de criarmos nossa primeira API:
- Requisições HTTP e Verbo GET:
- O cliente (navegador ou aplicativo) faz uma requisição para o servidor usando métodos HTTP. O verbo GET é usado para solicitar dados, como no caso da listagem de usuários, onde a URL “api/usuarios” é chamada para retornar todos os usuários.
- Respostas bem-sucedidas recebem o código HTTP de número 200 OK e os dados retornados geralmente vêm no formato JSON, que organiza dados em pares de chave-valor, facilitando a interpretação pelo front-end.
- Outros Verbos HTTP:
- POST: Usado para adicionar novos dados. Exemplo: adicionar um novo usuário.
- PUT: Atualiza dados completos de um recurso. Exemplo: atualizar todas as informações de um usuário.
- PATCH: Atualiza parcialmente um recurso. Exemplo: atualizar apenas o nome de um usuário.
- DELETE: Remove um recurso, como deletar um usuário específico.
- Códigos de Resposta HTTP, esses códigos são retornados após fazer uma requisição HTTP, não quero entrar em tantos detalhes dessa parte, pois o post ficaria muito grande. Então, vou separar os códigos por família.
- 100-199: Informativos.
- 200-299: Sucesso (ex.: 200 OK).
- 300-399: Redirecionamento.
- 400-499: Erros do cliente (ex.: 404 Not Found).
- 500-599: Erros do servidor.
Implementação de uma API no Visual Studio:
Antes de iniciar o projeto, lembre-se de prepare seu ambiente, comece instalando a ferramenta utilizada no C#, Visual Studio. Caso não tenha conhecimento em C#, dar uma olhada nos posts sobre programação do zero.
Com o Visual Studio aberto, vamos criar um novo projeto utilizando o modelo ASP.NET Core Web API para criar a estrutura de uma API. Por padrão, a API inicial vem com uma rota de exemplo para requisições GET. Podemos testar essa rota no navegador, pois o método GET é padrão, e receber o retorno em JSON. Faça um pequeno teste e veja como funciona a API na prática.
Próximos Passos:
-
- A próxima etapa envolverá conectar a API a um banco de dados, configurando o Visual Studio e introduzindo padrões mais avançados de design para facilitar a organização e a manutenção da aplicação.
Esses fundamentos são cruciais para a criação de uma API robusta e escalável. À medida que os detalhes técnicos aumentam, como a integração com bancos de dados, os padrões avançados ajudarão a manter o código organizado e eficiente.
Se você quiser acompanhar o tutorial completo, acesse o vídeo e inscreva-se no canal do BraboDev.
“ O SENHOR é o meu pastor, nada me faltará.”
Salmos 23:1