Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 3 – API JavaScript, Node.js e Express – O que é uma API – Application Programming Interface

Imagem destacada da aula de API

Introdução (3 min)

Imagine um restaurante. Você, o cliente, interage com o garçom. O garçom é a interface entre você e a cozinha, que prepara o seu pedido. Uma API funciona de maneira semelhante. Ela é a interface entre o seu aplicativo e outro software, permitindo que eles “conversem” e troquem informações.

Este conceito é fundamental para o desenvolvimento web moderno, viabilizando a construção de aplicações ricas e interativas. Nesta aula, você compreenderá precisamente o que é uma API, sua terminologia, casos de uso reais e como implementá-la em Node.js/Express, seguindo as melhores práticas.

No contexto Node.js/Express, as APIs geralmente são construídas utilizando o framework Express, permitindo a criação de endpoints que respondem a requisições HTTP.

Conceito Fundamental (7 min)

Uma Application Programming Interface (API) é um conjunto de definições e protocolos que possibilita a comunicação entre diferentes softwares. Ela define como os programas devem interagir, quais dados podem ser trocados e em qual formato. Pense nela como um contrato entre aplicações.

Termos relevantes incluem: endpoint (URL específico que recebe as requisições), método HTTP (GET, POST, PUT, DELETE, etc.), requisição (pedido de informação), resposta (dados retornados pela API), código de status (indica o sucesso ou falha da requisição) e formato de dados (JSON, XML, etc.).

Exemplos concretos de APIs em produção incluem APIs de redes sociais (permitindo que aplicativos acessem dados de usuários), APIs de pagamento (processando transações online) e APIs de geolocalização (fornecendo informações de localização).

APIs se integram com diversas tecnologias, como bancos de dados, serviços de nuvem e outras APIs. Uma das principais vantagens é a reutilização de código: um único serviço pode ser acessado por múltiplas aplicações.

Uma desvantagem potencial é a dependência de serviços externos, que podem apresentar instabilidades ou custos adicionais.

Implementação Prática (10 min)

Vamos construir uma API simples em Node.js/Express que retorna uma lista de produtos. Este código é totalmente funcional em um ambiente HostGator Plano M.

const express = require('express');
const app = express();
const port = 3000;

// Dados de exemplo (em um cenário real, isso viria de um banco de dados) const produtos = [ { id: 1, nome: 'Camiseta', preco: 25.00 }, { id: 2, nome: 'Calça', preco: 50.00 }, { id: 3, nome: 'Tênis', preco: 100.00 }, ];

// Endpoint para listar todos os produtos app.get('/produtos', (req, res) => { try { res.json(produtos); // Retorna os produtos em formato JSON } catch (error) { console.error("Erro ao buscar produtos:", error); // Logging profissional res.status(500).json({ error: 'Erro interno do servidor' }); // Error handling } });

app.listen(port, () => { console.log(Servidor rodando em http://localhost:${port}); });

Este código cria um servidor Express que escuta na porta 3000. O endpoint /produtos responde a requisições GET, retornando a lista de produtos em formato JSON. Incluímos tratamento de erros e logging para garantir a robustez da aplicação. Para executar, salve o código como index.js e rode node index.js no seu terminal.

Exercício Hands-On (5 min)

Desafio: Crie um novo endpoint /produtos/:id que retorna um produto específico baseado no seu ID. Utilize req.params.id para acessar o ID na URL.

Solução:

app.get('/produtos/:id', (req, res) => {
  const id = parseInt(req.params.id);
  const produto = produtos.find(p => p.id === id);

if (!produto) { return res.status(404).json({ error: 'Produto não encontrado' }); }

res.json(produto); });

Teste: Acesse http://localhost:3000/produtos/2 no seu navegador para testar o novo endpoint. Você deve receber as informações da calça.

Troubleshooting: Se encontrar erros, verifique se o ID na URL corresponde a um produto existente. Utilize o console do navegador para inspecionar a requisição e a resposta.

Próximos passos: Explore outros métodos HTTP (POST, PUT, DELETE) e aprenda como integrar com um banco de dados para persistir os dados.

🚀 Pronto para a próxima aula?

Continue sua jornada no desenvolvimento de APIs e domine Node.js & Express!

📚 Ver todas as aulas