Skip to content

Gerenciamento de pedidos de uma hamburgueria com Node.js e Express

Notifications You must be signed in to change notification settings

barbaraishioka/orders-crud-api

Repository files navigation

Projeto API de gerenciamento de pedidos com Node.js e Express

Este projeto é uma aplicação para o cadastro e gerenciamento de pedidos de uma hamburgueria. A API permite criar, listar, atualizar, deletar e alterar o status de pedidos. Desenvolvido utilizando Node.js e Express, este projeto é parte de um desafio do CodeClub.

Desafio do CodeClub

Tecnologias Utilizadas

  • Node.js: Ambiente de execução JavaScript
  • Express: Framework para desenvolvimento de APIs RESTful

Instalação

  1. Clone o repositório:
git clone https://github.com/barbaraishioka/orders-crud-api.git

cd orders-crud-api/
  1. Instale as dependências:
npm install

Execução

  • Inicie o servidor de desenvolvimento:
npm run dev

O servidor estará disponível em http://localhost:3000.

Endpoints

Obter pedidos

  • GET /orders
  • Retorna uma lista de todos os pedidos.

Obter pedido por ID

  • GET /orders/
  • Parâmetros: id (ID do pedido)
  • Retorna os dados de um pedido específico.

Criar novo pedido

  • POST /orders
  • Corpo da requisição:
{
  "order": "X- Salada, 2 batatas grandes, 1 coca-cola",
  "clientName": "José",
  "price": 44.5
}
  • Cria um novo pedido com os dados fornecidos.

Atualizar pedido por ID

  • PUT /orders/
  • Parâmetros: id (ID do pedido)
  • Corpo da requisição
{
  "order": "X- Salada, 2 batatas grandes, 1 coca-cola",
  "clientName": "José",
  "price": 44.5
}
  • Atualiza os dados de um pedido específico.

Atualizar status do pedido por ID

  • PATCH /orders/
  • Parâmetros: id (ID do pedido)
  • Corpo da requisição
{
  "status": "Pronto"
}
  • Atualiza o status de um pedido específico para "Pronto".

Deletar pedido por ID

  • DELETE /orders/
  • Parâmetros: id (ID do pedido)
  • Deleta um pedido específico.

Middlewares

  • Verificação de ID: Middleware utilizado em todas as rotas que recebem o parâmetro id. Ele verifica se o id passado existe. Se não existir, retorna um erro; caso contrário, permite a requisição continuar normalmente.

  • Log de requisições: Middleware chamado em todas as requisições, exibindo no console o método da requisição (GET, POST, PUT, DELETE, etc.) e a URL da requisição.

  • Validar campos obrigatórios: Middleware chamado nas rotas POST e PUT, para validar se os campos obrigatórios order, clientName e price foram preenchidos e se price é do tipo number. Se for inválido, retorna um erro; caso contrário, permite a requisição continuar normalmente.

Estrutura do Projeto

Visualizar estrutura

  • index.js: Arquivo principal da aplicação onde as rotas e middlewares são definidos.

  • package.json: Arquivo de configuração do projeto, contendo informações sobre dependências e scripts.

  • package-lock.json: Arquivo de bloqueio de versões das dependências.

  • .gitignore: Arquivo que lista os arquivos e diretórios que devem ser ignorados pelo Git.

  • README.md: Arquivo README.md do projeto.

  • info/: Pasta onde detalhei meus aprendizados.

    • desafio.md: Arquivo detalhando o desafio do projeto.

    • passo-a-passo.txt: Arquivo com o passo a passo para configuração e execução do projeto.

Comandos Úteis

  • Inicializar projeto:
npm init -y
  • Instalar dependências:
npm install express uuid
  • Executar servidor em modo de desenvolvimento:
npm run dev

Autora

Bárbara Ishioka

Licença

Este projeto está licenciado sob a licença ISC.

Observações

  • Use o Thunder Client para facilitar os testes da API.

Releases

No releases published

Packages

No packages published