| 🇺🇸 English |
| 🇧🇷 Português |
Acesse o projeto online AQUI
Tecnologias | Sobre | Rotas | Clone | Contato
Esse projeto é uma JSON-Server API que realiza o cadastro de projetos e armazena as categorias de projetos da iManager, uma Web plataforma de gestão empresarial, servindo como base para a sua Interface que desenvolvi essencialmente em ReactJS.
-
POST /projects: Essa rota recebe o nome do projeto, o orçamento do projeto e a categoria do projeto. Essas informações são passadas pelobodyda requisição, e com base nelas um novo projeto é registrado dentro do array de projetos, no seguinte formato:[ { "name": "Projeto 1", "budget": "5000", "category": { "id": 1, "name": "Infra" }, "cost": 0, "services": [], "id": 1 } ];
As informações de
costeservicessão inicializadas por padrão no sistema respectivamente como0e[], e oidé gerado com base na posição do projeto no array, e juntas, essas 3 informações são incorporadas no projeto. -
GET /projects: Essa rota retorna todos os projetos existentes no array deprojects. -
GET /projects/:id: Com base noidenviado, essa rota retorna um projeto específico. -
PATCH /projects/:id: Com base noidenviado e nos dados do projeto enviados pelobodyda requisição, essa rota torna possível atualizar as informações dename,budgete/oucategoryde um projeto específico.
Continuando do exemplo acima, ao chamar a rotaPATCH /projects/1passando{ name: "Novo Projeto 1", budget: 6500, category: { id: 2, name: "Desenvolvimento"} }, o array ficará dessa forma:[ { "name": "Novo Projeto 1", "budget": "6500", "category": { "id": 2, "name": "Desenvolvimento" }, "cost": 0, "services": [], "id": 1 } ];
Porém, através dessa rota também é possível atualizar o array de
servicesdo projeto, assim sendo possível Criar/Editar/Remover serviços - tudo dependerá do que estará sendo enviado pelobodyda requisição. Tendo em mente que:const project = { "name": "Novo Projeto 1", "budget": "6500", "category": { "id": 2, "name": "Desenvolvimento" }, "cost": 0, "id": 1 }
Ao chamar a rota
PATCH /projects/1passando{...project, services: [ { name: "Contratação de Dev Front-End", cost: 3400, desc: "Responsável pelo desenvolvimento do layout da aplicação." } ] }, o array ficará dessa forma:[ { "name": "Novo Projeto 1", "budget": "6500", "category": { "id": 2, "name": "Desenvolvimento" }, "cost": 3400, "services": [ { "name": "Contratar Dev Front-End", "cost": 3400, "desc": "Responsável pelo desenvolvimento do layout da aplicação.", "id": "dea206b3-409d-4b3f-9493-4bc2d27466a2" } ], "id": 1 } ];
O serviço que foi passado na requisição foi criado, e nesse caso, sua informação de
idfoi gerada pela biblioteca uuid.
Para Editar/Deletar um serviço segue-se a mesma lógica: basta enviar umprojectno estado desejado na requisição, que através de seuid, ele substituirá oprojectexistente no array deprojects.
Perceba que o valor decostdo projeto foi influenciado pelo serviço adicionado, isso porque o custo do projeto está relacionado com seus serviços, portanto, se o projeto tiver 2 serviços com umcostde 4000 cada, logo, ocostdo projeto será de 8000, porém, nesse caso é impossível disso acontecer, pois existem verificações para que ocostde um projeto não ultrapasse seubudget. -
DELETE /projects/:id: Com base noidenviado, assim que chamada, essa rota deleta o projeto recebido. -
GET /categories: Essa rota retorna todas as categorias existentes no array decategories.
Para clonar e executar este projeto em seu computador, você precisará do Git, Node.js v16.13.2 ou superior, Yarn, e de preferência, um API Client como o Insomnia (mas também pode ser acessado pelo navegador) previamente instalados.
No terminal:
# Clone esse repositório com:
> git clone https://github.com/Luk4x/iManager-json-server.git
# Entre no repositório com:
> cd iManager-json-server
# Instale as dependências com:
> yarn install
# Execute o projeto com:
> yarn start
# Feito isso, você já poderá acessar o projeto pelo link que aparecerá no terminal! (algo como http://localhost:3000/ ou http://127.0.0.1:5173/)
Vitrine.Dev 🪟
|
Lucas Maciel
|
