ExpressJS: Crie APIs de forma rápida e prática com JavaScript

O ExpressJS simplifica a criação de APIs com JavaScript e Node.js. Aprenda passo a passo a montar seu backend com rotas, testes e um exemplo prático de controle de estoque.

O ExpressJS é um framework minimalista para Node.js que cria servidores e APIs em JavaScript com poucas linhas de código. Você instala com npm install express, define uma rota como app.get(‘/produtos’) e sobe o servidor com app.listen(3000). Cada rota responde a um método HTTP (GET, POST, PUT, DELETE) devolvendo os dados em JSON.

Introdução

Se você já pensou em construir uma API rápida — sem complicação, apenas com JavaScript — o ExpressJS é sua porta de entrada. Com ele, você transforma facilmente o ambiente do backend e cria endpoints para servir dados (como lista de produtos) em poucos minutos.

Neste artigo, você vai aprender como configurar o ExpressJS e montar uma API simples de controle de estoque — ideal para quem está começando, estudando ou buscando consolidar fundamentos básicos de backend.

No fim, você terá algo funcional do zero: um servidor que responde requisições HTTP com dados JSON, pronto para você testar no navegador ou usando ferramentas como Insomnia.

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que é o ExpressJS e por que usá-lo

O ExpressJS é um framework minimalista e flexível para Node.js, criado para facilitar o desenvolvimento de servidores web e APIs com JavaScript.

Ele fornece um conjunto simples de ferramentas para definir rotas, lidar com requisições/respostas HTTP e integrar middlewares, sem impor uma estrutura rígida.

Com ExpressJS você consegue:

  • Criar rotas que respondem a diferentes métodos HTTP (GET, POST, PUT, DELETE) de forma simples.
  • Configurar um servidor HTTP com poucas linhas de código.
  • Montar APIs RESTful de forma leve e escalável — desde pequenos projetos até aplicações mais complexas.

Por ser minimalista, o ExpressJS te dá liberdade para estruturar o projeto como preferir. É ideal para aprender fundo sobre o funcionamento de servidores e APIs antes de adicionar bancos de dados, autenticação ou lógica mais complexa.

Para mais detalhes sobre APIs, recomendo conferir nossa aula: O que são APIs e WebAPIs – Diferenças e Importância

Preparativos para o seu projeto

Antes de começar, certifique-se de que você possui instalado:

  1. Node.JS — o runtime JavaScript do lado do servidor.
  2. Um editor de código, recomendamos o VS Code.

Depois, siga estes passos:

No terminal do seu editor de códigos, execute:

Codigo
npm init -y
Abrindo um novo terminal
comando npm init -y

Esse comando cria um arquivo package.json, que será usado para gerenciar dependências do projeto.

Abra o package.json e adicione a propriedade "type": "module" para habilitar importações ES6, se quiser usar import/export no lugar de require. Por exemplo:

JSON
{
  "name": "meu-projeto",
  "version": "1.0.0",
  "main": "index.js",
  "type": "module",
  "scripts": {},
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": ""
}

Isso nos permite trabalhar com múltiplos arquivos de código de maneira modular, seguindo o sistema de módulos ES, que possibilita o uso de import e export para organizar seu código em diferentes arquivos.

Depois, instale o ExpressJS com:

Codigo
npm install express
comando npm install express

Isso vai criar a pasta node_modules, onde ficarão as dependências do projeto necessárias para o funcionamento do Express.

pasta node_modules

Métodos HTTP e Rotas na API

Quando um usuário acessa uma API, ele realiza uma requisição, que pode ser de diferentes tipos, dependendo da ação desejada.

No contexto da web, os métodos HTTP mais comuns são:

  • GET para obter uma informação do servidor.
  • POST para enviar uma informação ao servidor.
  • PUT atualizar uma informação do servidor.
  • DELETE apagar uma informação do servidor.

Se quiser entender melhor sobre a comunicação na web e os diferentes métodos HTTP, acesse nossa aula: Comunicação na Internet - Todo Desenvolvedor Web Deve Saber

Como o ExpressJS trata rotas e métodos HTTP

Com o ExpressJS, definir rotas e responder a requisições é bem direto. Por exemplo:

  • app.get(path, handler) — define uma rota para requisições GET.
  • Você também pode usar app.post(), app.put(), app.delete(), entre outros, para lidar com os diversos verbos HTTP.
  • É possível usar middlewares (funções de interceptação) para tratar requisições antes de chegar nas rotas, fazer validações, parsing de JSON, autenticação etc.

Essa flexibilidade torna o Express ideal tanto para APIs simples quanto para backends mais robustos, basta adicionar funcionalidades conforme necessário.

Ícone Full StackFull Stack Impressionador

Essa é uma trilha de especialização que vai te tornar um verdadeiro Desenvolvedor Web Full Stack, dominando todas as principais tecnologias usadas tanto para o Front End quanto para o Backend e ainda para Mobile, construindo projetos práticos e exercícios aplicados à realidade das empresas. Tudo o que você precisa para se tornar um Desenvolvedor Full Stack em um único lugar.

Começar agoraSeta para a direita
Fundo Full StackTelas Full Stack
Luz Full Stack

Criando a API de controle de estoque

Agora que o ambiente está pronto e você entendeu melhor o funcionamento de uma API, vamos começar nosso exemplo prático: criar uma API simples que representa um estoque de produtos.

1. Definindo os dados — estoque.js

Crie um arquivo chamado estoque.js

arquivo chamado estoque.js

Dentro desse arquivo, defina um array de objetos representando os itens do estoque. Cada objeto terá informações como id e nome do produto. Por exemplo:

Codigo
const estoque = [
  { id: 1, nome: "mesa" },
  { id: 2, nome: "cadeira" },
  { id: 3, nome: "gaveteiro" },
];

export default estoque;

Esse array simula um estoque simples, mas já serve bem para testar a ideia de API. A exportação permite reutilizar o array em outros arquivos.

2. Criando o servidor e definindo rotas — app.js

Em um segundo arquivo, app.js, importe o array do estoque e o Express. Depois, crie a aplicação e defina a rota para retornar os produtos:

Python
import express from "express";
import estoque from "./estoque.js";

const app = express();

app.get("/produtos", (req, res) => {
  res.status(200).send(estoque);
});

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

O objeto app é gerado a partir da função express. Esse objeto é o núcleo da aplicação, onde as rotas e funcionalidades da API são controladas.

E método get() define o comportamento da API quando a rota é acessada. O servidor responde com o código de status 200 (requisição bem-sucedida) e envia (send()) o array estoque como resposta.

Essa operação é realizada por meio de uma função que recebe dois parâmetros: req (requisição) e res (resposta). Essa função será chamada sempre que o usuário acessar o caminho /produtos da API.

Para permitir que outros sistemas se comuniquem com a API, utilize o método listen, definindo a porta 3000. Isso significa que o servidor estará disponível localmente nessa porta.

Dessa forma, ao acessar http://localhost:3000/produtos, o servidor responderá com o array estoque.

3. Testando a API

Para rodar o servidor, use o comando:

Codigo
node ./app.js
comando no terminal: node ./app.js

Abra o navegador ou use o Insomnia e defina uma requisição GET para http://localhost:3000/produtos.

Criando uma requisição no Insomnia
requisição do tipo GET no Insomnia
Requisição feita utiliando o Insomnia

Você verá a lista de produtos como resposta JSON, junto com o status HTTP 200. Isso significa que sua API está funcionando corretamente.

Acessando a API pelo navegador
Visualizando os Dados da API no Navegador
Resposta da requisição no Insomnia
Visualizando os Dados da API no Insomnia

Próximos Passos no Desenvolvimento de APIs:

Mesmo sendo simples, esse exemplo já traz o essencial de uma API:

  • Um servidor que responde a requisições HTTP
  • Uma rota definida com método e endereço (endpoint) claro
  • Dados estruturados (array de objetos) retornados como resposta JSON

A partir desse ponto, você pode expandir para operações CRUD completas (criar, ler, atualizar, deletar), integrar um banco de dados (relacional ou NoSQL), adicionar autenticação, tratamento de erros, validação de dados, entre outras camadas.

Há quem use ExpressJS para APIs completas em aplicações SPA ou com front-end moderno.

Se você deseja aprender a criar um sistema completo de backend com Node.js e ExpressJS, incluindo a configuração e o desenvolvimento do servidor da sua WebAPI, confira o nosso Minicurso de NodeJS - Backend com JavaScript.

Conclusão – Conhecendo o ExpressJS

Com poucos passos — instalar Node.js, criar package.json, instalar Express, definir dados e rotas — você já tem uma API básica de estoque funcionando.

O ExpressJS abstrai a complexidade do servidor HTTP, deixando você focar na lógica da sua aplicação. Sua simplicidade, combinada com sua flexibilidade, faz dele uma ferramenta poderosa para desenvolvedores backend.

Se quiser se aprofundar na construção de backends robustos, com banco de dados, autenticação, rotas organizadas e melhores práticas, recomendo conferir o curso completo Full Stack Impressionador.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula cria uma API de controle de estoque com ExpressJS do zero: inicializa o projeto com npm init -y, instala o framework, define os dados num array exportado e cria uma rota GET que devolve o estoque em JSON, testando tudo com o Insomnia enquanto a API roda na porta 3000.

Neste vídeo (18 min):

  • 1:00 - npm init -y cria o package.json, o arquivo que coordena as configurações do projeto Node
  • 3:00 - Definir "type": "module" no package.json permite usar import e export entre os arquivos do projeto; npm install express instala o framework
  • 5:00 - Criação do arquivo de estoque com um array de objetos, cada um com id e nome, exportado com export default
  • 7:00 - No arquivo principal, importa o array do estoque e a função express vindos dos respectivos arquivos
  • 8:00 - A função express() devolve um objeto que controla as características da API, usado depois para definir rotas e porta
  • 9:00 - app.listen(3000) coloca a API rodando na porta 3000 da máquina
  • 10:00 - app.get('/produtos', (req, res) => ...) define uma rota que recebe a requisição e devolve a resposta
  • 12:00 - Dentro da rota, o status da resposta indica o resultado: 200 para sucesso, 401 para quando falta autorização, seguido de res.send() com os dados
  • 13:00 - Rodar o servidor pelo terminal com node app.js coloca a API no ar
  • 14:00 - Testar a rota com o Insomnia, disparando uma requisição GET para localhost:3000/produtos

Trechos do vídeo:

  • Definir "type": "module" no package.json permite usar import e export entre arquivos diferentes do mesmo projeto
  • A função express() devolve um objeto que controla todas as características da API, e é a partir dele que se definem rotas e a porta do servidor
  • Cada rota combina um caminho com um método HTTP, e a função que a atende recebe a requisição e a resposta como parâmetros
  • O código de status da resposta indica o resultado da requisição: 200 para sucesso, 401 para quando o pedido não tem autorização

FAQ - Perguntas Frequentes sobre Expressjs e APIs

1. Preciso instalar algo além do Express para começar?

Não. Para esse exemplo, basta ter Node.js instalado, inicializar o projeto com npm init -y e rodar npm install express. Isso já permite criar rotas e responder requisições.

2. Posso usar import/export (ES Modules) em vez de require/exports?

Sim. Se você adicionar "type": "module" no package.json, consegue usar import/export, como no exemplo estoque.js + app.js.

3. O Express impede que eu use um banco de dados ou outra funcionalidade mais avançada?

Não. Express é minimalista, mas extremamente flexível — permite integrar bancos de dados, middlewares, autenticação, sistemas de rotas organizados, etc. Você só precisa escolher as dependências certas.

4. É possível ter múltiplas rotas dentro da API?

Sim. Você pode definir quantas rotas quiser com diferentes métodos HTTP. Por exemplo: app.post("/produtos", ...), app.put("/produtos/:id", ...), app.delete("/produtos/:id", ...), etc.

Hashtag Treinamentos

Para acessar publicações de JavaScript, clique aqui!


Quer aprender mais sobre JavaScript com um minicurso básico gratuito?

Posts mais recentes de JavaScript

Posts mais recentes da Hashtag Treinamentos