Skip to content

About

API SIMPLES, EXEMPLO DE UTILIZAÇÃO ADONIS+LUCID+SQLite

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

API AdonisJS

API REST simples em AdonisJS + TypeScript para um portfolio publico com usuarios, lojas, vendedores e produtos.

Funcionalidades

  • Cadastro de usuarios com perfis vendedor, gestor e master.
  • Login com JWT e rotas protegidas por autenticacao/autorizacao.
  • Recuperacao e redefinicao de senha.
  • Cadastro e consulta de lojas.
  • Vinculo de vendedores a lojas.
  • Cadastro, listagem, edicao e remocao de produtos por loja.

Tecnologias

  • Node.js 20+
  • AdonisJS 6
  • Lucid ORM
  • SQLite
  • JWT

Como rodar

npm install
cp .env.example .env
node ace generate:key
npm run migration:run
npm run dev

A API sobe em:

http://localhost:3333

Teste rapido:

curl http://localhost:3333/check

Resposta esperada:

{ "status": "online" }

Variaveis de ambiente

TZ=UTC
PORT=3333
HOST=localhost
LOG_LEVEL=info
APP_KEY=change_me_with_node_ace_generate_key
NODE_ENV=development
JWT_SECRET=change_this_in_production
PASSWORD_RESET_TOKEN_TTL_MINUTES=30

Rotas publicas

GET  /
GET  /check
POST /user/store
POST /login
POST /forgot-password
POST /reset-password

Rotas protegidas

Envie o token retornado no login:

Authorization: Bearer SEU_TOKEN_JWT
GET    /user/me
GET    /users
GET    /stores
GET    /stores/:storeId
POST   /stores
PATCH  /stores/:storeId
POST   /stores/:storeId/sellers
DELETE /stores/:storeId/sellers/:sellerId
GET    /products
GET    /products/:productId
PATCH  /products/:productId
DELETE /products/:productId
GET    /stores/:storeId/products
POST   /stores/:storeId/products

Exemplos

Criar gestor:

curl -X POST http://localhost:3333/user/store \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Gestor Teste",
    "email": "gestor@teste.com",
    "password": "123456",
    "role": "gestor"
  }'

Login:

curl -X POST http://localhost:3333/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "gestor@teste.com",
    "password": "123456"
  }'

Criar loja:

curl -X POST http://localhost:3333/stores \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_JWT" \
  -d '{
    "name": "Loja Centro",
    "description": "Unidade principal",
    "city": "Sao Paulo",
    "commissionRate": 10,
    "active": true
  }'

Criar produto para uma loja:

curl -X POST http://localhost:3333/stores/STORE_ID/products \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_JWT" \
  -d '{
    "name": "Notebook",
    "description": "Notebook para demonstração",
    "sku": "NOTE-001",
    "quantity": 5,
    "location": "Prateleira A"
  }'

About

API SIMPLES, EXEMPLO DE UTILIZAÇÃO ADONIS+LUCID+SQLite

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages