https://github.com/douglaspimentel/nodejs-api-rest
API REST com Node.js e Hono.
https://github.com/douglaspimentel/nodejs-api-rest
api-rest hono jose jwt nodejs postgresql typeorm typescript
Last synced: about 1 month ago
JSON representation
API REST com Node.js e Hono.
- Host: GitHub
- URL: https://github.com/douglaspimentel/nodejs-api-rest
- Owner: DouglasPimentel
- License: mit
- Created: 2025-03-10T22:58:52.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-04-28T15:25:04.000Z (5 months ago)
- Last Synced: 2025-09-01T18:58:03.822Z (about 1 month ago)
- Topics: api-rest, hono, jose, jwt, nodejs, postgresql, typeorm, typescript
- Language: TypeScript
- Homepage:
- Size: 79.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Node.js API REST
Este repositório contém uma API REST desenvolvida com Node.js e Hono, utilizando TypeScript, TypeORM e PostgreSQL. A autenticação é baseada em JWT, utilizando a biblioteca Jose, e o hash de senhas é feito com Argon2.
## 🚀 Tecnologias Utilizadas
- **Node.js** - Ambiente de execução JavaScript no servidor
- **Hono** - Microframework para criação de APIs web
- **TypeScript** - Superconjunto tipado do JavaScript
- **PostgreSQL** - Banco de dados relacional
- **TypeORM** - ORM para modelagem e manipulação do banco de dados
- **JWT (Jose)** - Autenticação e segurança baseada em tokens JWT
- **Argon2** - Hash de senhas seguro## 📌 Requisitos
Antes de iniciar o projeto, certifique-se de que os seguintes softwares estão instalados na sua máquina:
- **Node.js** (versão 18 ou superior)
- **PostgreSQL** (versão 14 ou superior)## 🔧 Instalação
1. Clone este repositório:
```sh
git clone https://github.com/DouglasPimentel/nodejs-api-rest
cd nodejs-api-rest
```
2. Instale as dependências:
```sh
pnpm install
```
3. Crie um arquivo `.env.local` com as variáveis necessárias (exemplo no `.env.template`).
4. Inicie a aplicação em modo de desenvolvimento:
```sh
pnpm dev
```## 📂 Estrutura do Projeto
```
nodejs-api-rest/
|-- public/
│-- src/
| |-- database/
│ │-- middlewares/
│ │-- modules/
│ │-- routes/
│ │-- utils/
| |-- app.ts
| |-- environment.ts
| |-- index.ts
│ └── logger.ts
│-- .env.template
|-- .gitignore
│-- tsconfig.json
│-- package.json
|-- README.md
└── tsconfig.json
```## 📌 Rotas Principais
- **Autenticação**
- `POST /auth/login` - Autentica um usuário e retorna um token JWT
- `POST /auth/signup` - Registra um novo usuário- **Recursos Protegidos** (Exemplo)
- `GET /api/v1/users` - Retorna a lista de usuários (requer autenticação)
- `GET /api/v1/tools` - Retorna a lista de ferramentas (requer autenticação)## 🔑 Autenticação JWT
Os tokens JWT são gerados utilizando a biblioteca [Jose](https://github.com/panva/jose). O token deve ser incluído no cabeçalho `Authorization` para acessar rotas protegidas:
```
Authorization: Bearer
```## 📜 Scripts Disponíveis
- `pnpm build` - Fazer o build - Preparar os arquivos para produção
- `pnpm start` - Inicia o servidor em modo de produção
- `pnpm dev` - Inicia o servidor em modo de desenvolvimento## 🤝 Contribuição
1. Fork este repositório
2. Crie uma branch (`git checkout -b feature-minha-feature`)
3. Commit suas mudanças (`git commit -m 'Adiciona nova feature'`)
4. Envie para a branch (`git push origin feature-minha-feature`)
5. Abra um Pull Request## 📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.