Skip to content

Uma API para gerenciar um catálogo de produtos, oferecendo funcionalidades de criação, visualização, atualização e exclusão produtos.

License

Notifications You must be signed in to change notification settings

JulioC090/crud-api

Repository files navigation

CRUD API

Logo

Uma API para gerenciar um catálogo de produtos, oferecendo funcionalidades de criação, visualização, atualização e exclusão produtos.

📕 Sumário

🏛️ Arquitetura

Arquitetura do Projeto

  • Roteador: Recebe requisições HTTP e as encaminha para os controladores correspondentes com base na URL e no método HTTP.
  • Controlador: Trata das requisições HTTP, processa e valida parâmetros de entrada, chama os serviços apropriados e prepara as respostas para o cliente.
  • Serviço: Contém a lógica de negócios principal da aplicação e coordena as operações entre os repositórios.
  • Repositório: Encapsula a lógica de acesso ao banco de dados e abstrai os detalhes específicos do banco de dados.

🚀 Começando

📋 Pré-requisitos

Antes de começar, certifique-se de ter os seguintes itens:

🔧 Instalação

  1. Baixe ou clone o repositório
git clone https://github.com/JulioC090/crud-api.git
  1. Baixe as dependências
npm install
  1. Inicie o MongoDB
npm run up
  1. Configure example.env
SERVER_PORT=5000

DB_HOST=0.0.0.0
DB_PORT=27017
DB_NAME="products"
DB_USER="root"
DB_PASS="toor"
  1. Renomeie example.env para .env
mv example.env .env
  1. Execute o projeto
npm run dev
  1. Faça requisições para http://localhost:{SERVER_PORT}/

🕹️ Funcionalidades

  • Listar produtos
  • Adicionar produto
  • Editar Produto
  • Excluir Produto

⛳ Endpoints

Listar produtos

Retorna uma lista de todos os produtos disponíveis no catálogo.

  • URL: /produtos
  • Método HTTP: GET
  • Resposta:
products: Array<{
  id: string;
  name: string;
  description: string;
  price: number;
}>;

Adicionar produto

Adiciona um novo produto ao catálogo.

  • URL: /produtos
  • Método HTTP: POST
  • Parâmetros:
  {
    name: string,
    description: string,
    price: number
  }
  • Resposta:
  errors?: ZodError

Editar Produto

Atualiza as informações de um produto existente.

  • URL: /produtos/{id}
  • Método HTTP: PUT
  • Parâmetros:
  {
    name: string,
    description: string,
    price: number
  }
  • Resposta:
  errors?: ZodError

Excluir Produto

Remove um produto do catálogo.

  • URL: /produtos/{id}
  • Método HTTP: DELETE
  • Resposta:
  errors?: ZodError

🛠️ Tecnologias

  • NodeJS
  • Typescript
  • Fastify
  • Zod
  • MongoDB
  • Docker

📄 Licença

Este projeto é licenciado sob a licença MIT.

About

Uma API para gerenciar um catálogo de produtos, oferecendo funcionalidades de criação, visualização, atualização e exclusão produtos.

Topics

Resources

License

Stars

Watchers

Forks