2 - Conceitos sobre APIs, rotas e endpoints

Olá, pessoal! Vamos nessa segunda aula do treinamento, vamos conhecer alguns conceitos importantes sobre APIs.

O que são APIs?

API é a sigla para Application Programming Interface (Interface de Programação de Aplicações). De forma simples, uma API é um conjunto de regras e definições que permite que um software se comunique e troque dados com outro. Ela funciona como uma ponte, permitindo que uma aplicação web, um aplicativo de celular ou um sistema interno acessem recursos e funcionalidades de um servidor sem precisar saber como ele foi implementado por dentro.

Funcionamento

O funcionamento de uma API baseia-se em um modelo de comunicação conhecido como Cliente-Servidor, estruturado em duas etapas principais:

  • Requisição (Request): O cliente (como o navegador ou o aplicativo de celular) faz um pedido enviando dados para a API através da internet.
  • Resposta (Response): O servidor processa esse pedido, realiza as regras de negócio necessárias (como buscar dados no banco) e devolve uma resposta para o cliente, geralmente em um formato padronizado como o JSON.

Rotas

As rotas são os caminhos ou URLs específicas que a nossa API disponibiliza para receber as requisições. Elas servem para organizar e direcionar o tráfego da aplicação de acordo com o recurso que o cliente deseja acessar. Por exemplo, em um sistema de e-commerce, podemos ter caminhos distintos como /produtos ou /usuarios para separar as diferentes funcionalidades do sistema.

Endpoints

Um endpoint é o ponto final da comunicação em uma rota, ou seja, o ponto de contato exato onde a API recebe a requisição para executar uma ação específica. Enquanto a rota indica o caminho geral (ex: /produtos), o endpoint combina essa rota com a intenção do cliente para determinar se estamos listando, criando ou editando um item. Estudaremos detalhadamente como o servidor identifica cada uma dessas intenções nas próximas aulas.

Características que tornam Go uma ótima linguagem para criar APIs

O Go foi projetado pensando nos desafios da web moderna, o que traz vantagens claras para o desenvolvimento de APIs:

  • Biblioteca Padrão Poderosa: O Go possui um pacote nativo chamado net/http, que permite criar servidores HTTP robustos e de alto desempenho sem a necessidade obrigatória de frameworks externos.
  • Alto Desempenho e Concorrência: Por ser uma linguagem compilada, o Go entrega uma execução extremamente rápida. Além disso, seu modelo de concorrência baseado em Goroutines permite que a API gerencie milhares de requisições simultâneas consumindo o mínimo de memória.
  • Simplicidade de Manutenção: A sintaxe limpa e direta do Go faz com que o código de APIs complexas continue fácil de ler, testar e manter por equipes de qualquer tamanho.
  • Tipagem Estática e Segura: O sistema de tipos do Go ajuda a capturar erros de programação diretamente durante a compilação, garantindo que os dados manipulados pela API sejam sempre previsíveis e seguros.
  • Compilação em um Único Binário: O Go compila todo o código da API em um único arquivo executável independente. Isso elimina a necessidade de instalar dependências e interpretadores no servidor, tornando o deploy extremamente simples e rápido.
  • Inicialização Quase Instantânea: Diferente de linguagens que dependem de máquinas virtuais pesadas, as APIs escritas em Go inicializam em milissegundos, o que é ideal para ambientes modernos de nuvem e arquiteturas de microsserviços.
  • Excelente Suporte a JSON: Como o JSON é o formato padrão de comunicação das APIs modernas, o Go traz suporte nativo e de alta performance para converter estruturas de código em JSON (e vice-versa) de forma muito simples.
  • Baixo Consumo de Recursos: Uma API em Go consome pouquíssima memória RAM e CPU se comparada a outras tecnologias do mercado, o que reduz drasticamente os custos de hospedagem em servidores cloud.