Skip to content

API RESTful para gerenciamento e transformação de pedidos desenvolvida em Node.js. Solução para o desafio técnico da Jitterbit.

License

Notifications You must be signed in to change notification settings

asventura96/jitterbit_api_js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jitterbit Challenge API

API RESTful desenvolvida em Node.js para gerenciamento e transformação de dados de pedidos. O projeto implementa uma arquitetura MVC, utiliza banco de dados relacional (SQLite) e garante a consistência dos dados através de transações.

🛠 Tecnologias Utilizadas

  • Node.js: Ambiente de execução JavaScript.
  • Express: Framework para construção da API.
  • SQLite: Banco de dados relacional serverless.
  • Sequelize: ORM para modelagem de dados e associações.

⚙️ Como executar o projeto

Pré-requisitos

Certifique-se de ter o Node.js e o NPM instalados em sua máquina.

Passo a passo

  1. Clone o repositório: git clone https://github.com/asventura96/jitterbit_api_js.git

  2. Acesse a pasta do projeto: cd jitterbit_api_js

  3. Instale as dependências: npm install

  4. Inicie o servidor: npm run dev

O servidor iniciará em http://localhost:3000. O banco de dados database.sqlite será criado automaticamente na raiz do projeto na primeira execução.

📚 Documentação da API

1. Criar Pedido (POST)

Recebe os dados no formato legado (Português) e realiza a transformação para o formato do banco de dados (Inglês).

  • URL: /order
  • Método: POST
  • Corpo da Requisição (JSON):

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

  • Resposta de Sucesso (201 Created):

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

2. Buscar Pedido por ID (GET)

Retorna os detalhes de um pedido específico, incluindo seus itens.

  • URL: /order/:id
  • Método: GET
  • Exemplo: /order/v10089015vdb-01

3. Listar Todos os Pedidos (GET)

Retorna uma lista com todos os pedidos cadastrados no banco.

  • URL: /orders/list
  • Método: GET

📂 Estrutura do Projeto

src/ ├── controllers/ # Lógica de negócios e transformação de dados ├── database/ # Configuração do banco e inicialização do Sequelize ├── models/ # Definição das tabelas e relacionamentos ├── routes.js # Definição dos endpoints da API └── index.js # Ponto de entrada do servidor

About

API RESTful para gerenciamento e transformação de pedidos desenvolvida em Node.js. Solução para o desafio técnico da Jitterbit.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published