Skip to content

Latest commit

 

History

History
127 lines (91 loc) · 3.01 KB

File metadata and controls

127 lines (91 loc) · 3.01 KB

Order API

API em Node.js + Express + MongoDB para gerenciamento de pedidos (CRUD).


Como rodar

1. Instalar dependências

npm install

2. Configurar o .env

Crie um arquivo .env na raiz do projeto com as variáveis de ambiente necessárias. (PORT e MONGODB_URI)

3. Stack

Node.js Express MongoDB Swagger

  • Node.js + Express — servidor HTTP
  • MongoDB + Mongoose — banco de dados
  • Swagger — documentação interativa (/api-docs)

4. Iniciar

node src/server.js

Saída esperada:

MongoDB conectado: mongodb://localhost:27017/orders_db
Servidor: http://localhost:3000
Swagger:  http://localhost:3000/api-docs

Endpoints

Método URL Descrição
POST /order Criar pedido
GET /order/list Listar todos
GET /order/:orderId Buscar por número
PUT /order/:orderId Atualizar pedido
DELETE /order/:orderId Deletar pedido

Base URL: http://localhost:3000


Mapeamento de campos

A API recebe os dados em português e salva no banco em inglês:

numeroPedido    →  orderId
valorTotal      →  value
dataCriacao     →  creationDate
idItem          →  productId
quantidadeItem  →  quantity
valorItem       →  price

Exemplo — Criar pedido (POST /order)

Body (JSON):

{
  "numeroPedido": "v10089015vdb-01",
  "valorTotal": 10000,
  "dataCriacao": "2023-07-19T12:24:11.5299601+00:00",
  "items": [{ "idItem": "2434", "quantidadeItem": 1, "valorItem": 1000 }]
}

Salvo no MongoDB como:

{
  "orderId": "v10089015vdb-01",
  "value": 10000,
  "creationDate": "2023-07-19T12:24:11.529Z",
  "items": [{ "productId": 2434, "quantity": 1, "price": 1000 }]
}

Estrutura do projeto

src/
├── server.js              ← Inicia o Express e conecta ao MongoDB
├── config/
│   ├── database.js        ← Conexão com o MongoDB (Mongoose)
│   └── swagger.js         ← Configuração do Swagger
├── models/
│   └── Order.js           ← Schema do pedido (orderId, value, items...)
├── controllers/
│   └── orderController.js ← CRUD + mapeamento PT → EN
└── routes/
    └── orderRoutes.js     ← Rotas da API + docs Swagger

Como funciona (resumo)

  1. Requisição chega em /order com dados em português
  2. Controller transforma os campos (PT → EN) usando a função mapear()
  3. Mongoose valida e salva no MongoDB
  4. Resposta retorna o pedido no formato do banco (inglês)