Skip to content

mttomaz/jitterbit-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jitterbit API — Orders CRUD (Node.js + Express + MongoDB)

Este projeto é uma API simples para gerenciar pedidos (orders), desenvolvida como parte do desafio técnico da Jitterbit. A API permite criar, listar, buscar, atualizar e deletar pedidos, armazenando todos os dados em um banco MongoDB, com transformação do payload antes de salvar.

Tecnologias utilizadas

  • Node.js
  • Express
  • MongoDB + Mongoose
  • dotenv
  • Nodemon (ambiente de desenvolvimento)

Estrutura do projeto

src/
 ├── controllers/
 ├── models/
 ├── routes/
 ├── server.js
 ├── app.js
.env.example

Instalação e execução

1. Clone o repositório

git clone https://github.com/mttomaz/jitterbit-api
cd jitterbit-api

2. Instale dependências

npm install

3. Configure o .env

Crie um arquivo .env baseado no .env.example:

MONGO_URI=mongodb://localhost:27017/jitterbit

4. Inicie o servidor

npm run dev

A API estará rodando em:

http://localhost:3000

Modelo de dados

Estrutura salva no MongoDB

A API transforma o JSON recebido antes de persistir:

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

Coleção do Postman

Uma coleção completa do Postman está disponível no link abaixo:

https://www.postman.com/mttomaz/jitterbit-api/overview

Essa coleção contém todos os endpoints da API já configurados (Create, List, Get, Update, Delete), facilitando os testes.

Antes de rodar os requests

Você precisa criar uma variável chamada baseURL no Postman:

  1. Abra a coleção jitterbit-api
  2. Vá em Variables
  3. Crie a variável:

Isso permite que todos os endpoints funcionem automaticamente, sem precisar alterar cada URL manualmente.

Rotas da API

➤ Criar novo pedido

POST /order

Payload de entrada:

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

➤ Buscar pedido por ID

GET /order/:orderId

Exemplo:

GET /order/v10089015vdb-01

➤ Listar todos os pedidos

GET /order/list

➤ Atualizar pedido

PUT /order/:orderId

➤ Deletar pedido

DELETE /order/:orderId

Exemplo de criação via cURL

curl --location 'http://localhost:3000/order' \
--header 'Content-Type: application/json' \
--data '{
    "numeroPedido": "v10089015vdb-01",
    "valorTotal": 10000,
    "dataCriacao": "2023-07-19T12:24:11.5299601+00:00",
    "items": [
        {
            "idItem": "2434",
            "quantidadeItem": 1,
            "valorItem": 1000
        }
    ]
}'

Licença

Projeto desenvolvido para fins educacionais/desafio técnico.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published