API REST desenvolvida em Node.js com Express, com suporte a HTTP e HTTPS (certificado SSL), para operações CRUD de cadastro de pessoas, utilizando SQLite como banco de dados.
- Node.js (ESM — módulos ES)
- Express 5
- SQLite (
sqlite+sqlite3) - CORS
- HTTPS nativo (módulo
httpsdo Node) com certificado OpenSSL
api-rest/
├── src/
│ ├── app.js # Ponto de entrada da aplicação
│ ├── routes.js # Definição das rotas
│ ├── configDB.js # Conexão com o banco SQLite
│ ├── controler/
│ │ └── pessoa.js # Lógica de CRUD da entidade Pessoa
│ └── SSL/
│ ├── certificate.crt # Certificado SSL (não versionado)
│ └── private.key # Chave privada SSL (não versionada)
├── database.db # Banco SQLite (não versionado)
├── package.json
└── .gitignore
CRUD completo da entidade Pessoa (id, nome, idade):
| Método | Rota | Descrição |
|---|---|---|
| GET | / |
Ping — verifica se a API está no ar |
| GET | /pessoas |
Lista todas as pessoas |
| GET | /pessoa/:id |
Busca uma pessoa pelo id |
| POST | /pessoa/ |
Cadastra uma nova pessoa |
| PUT | /pessoa/:id |
Atualiza uma pessoa existente |
| DELETE | /pessoa/:id |
Remove uma pessoa |
Buscar uma pessoa
GET /pessoa
Content-Type: application/json
{ "id": 1 }Cadastrar uma pessoa
POST /pessoa
Content-Type: application/json
{ "nome": "Maria", "idade": 28 }Atualizar uma pessoa
PUT /pessoa
Content-Type: application/json
{ "id": 1, "nome": "Maria Silva", "idade": 29 }Remover uma pessoa
DELETE /pessoa
Content-Type: application/json
{ "id": 1 }A aplicação sobe simultaneamente em HTTP e HTTPS:
- HTTP: porta
3000 - HTTPS: porta
3002
Para o HTTPS funcionar, é necessário gerar um certificado SSL local e colocá-lo em src/SSL/:
mkdir -p src/SSL
openssl req -x509 -newkey rsa:2048 -keyout src/SSL/private.key -out src/SSL/certificate.crt -days 365 -nodes -subj "//CN=localhost"# Clone o repositório
git clone https://github.com/eualvarocosta/api-rest.git
# Acesse a pasta do projeto
cd api-rest
# Instale as dependências
npm installnode src/app.jsA aplicação estará disponível em:
- HTTP:
http://localhost:3000 - HTTPS:
https://localhost:3002
O banco de dados SQLite (
database.db) é criado automaticamente na raiz do projeto na primeira execução, junto com a tabelaPessoa.
Projeto desenvolvido para fins de estudo e consolidação de conhecimentos em desenvolvimento Back-End com Node.js e Express.
A aplicação foi construída a partir de conteúdo educacional sobre APIs REST e utilizada como prática para implementação de operações CRUD, organização de rotas e controllers, persistência de dados com SQLite e configuração de comunicação HTTP e HTTPS com certificado SSL local.
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Álvaro Costa Santos GitHub: @eualvarocosta LinkedIn: LinkedIn