https://github.com/celiovjunior/teste-api
💲 Resolução do teste prático de uma API de cálculo de orçamento.
https://github.com/celiovjunior/teste-api
api axios express javascript jest nodejs rest-api typescript
Last synced: 4 months ago
JSON representation
💲 Resolução do teste prático de uma API de cálculo de orçamento.
- Host: GitHub
- URL: https://github.com/celiovjunior/teste-api
- Owner: celiovjunior
- Created: 2023-02-08T22:51:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-24T05:08:01.000Z (about 2 years ago)
- Last Synced: 2025-01-10T16:36:14.612Z (5 months ago)
- Topics: api, axios, express, javascript, jest, nodejs, rest-api, typescript
- Language: TypeScript
- Homepage:
- Size: 150 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
(Resolução) Teste - API de Orçamento
> Status: finalizado ✔
## Descrição:
Utilizando os dados disponÃveis em dois mockends (um com uma lista de usuários e outro com uma lista de produtos), foi desenvolvido uma API onde é possÃvel:
- listar os dados dos usuários ("users");
- listar os dados dos produtos ("products");
- calcular o orçamento ("budget") que cada usuário irá pagar em cima do(s) preço(s) do(s) produtos(s) selecionado(s);## Ferramentas Utilizadas:
- [Node](https://nodejs.org)
- [Express](https://expressjs.com)
- [Typescript](https://www.typescriptlang.org/)
- [Axios](https://axios-http.com/docs/intro)
- [Jest](https://jestjs.io/docs/getting-started)## Como Baixar o Projeto:
Antes de baixar o projeto, certifique-se de que você tenha o Node, o npm (gerenciador de pacotes do Node) e o Git instalandos e devidamente configurados no seu computador.
Abaixo estão alguns links de apoio:- [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
- [GIT](https://git-scm.com/downloads)
É recomendado que os comandos abaixo sejam feitos em um terminal bash
```bash
# 1: clone o repositório
git clone [email protected]:celiovjunior/teste-api.git# 2: acesse a pasta do projeto
cd teste-api# 3: faça o download das bibliotecas/frameworks pendentes e aguarde
npm install# 4: execute o projeto
npm run dev# Uma mensagem dizendo 'Server is running' deverá aparecer
```---
## Detalhes do Projeto
### Formato:
Os dados do projeto foram trabalhados no formato JSON
Segue os exemplos abaixo:USER
```json
[
{
"id": 1,
"name": "cvRhuZicvV",
"tax": 79
},
{
"id": 2,
"name": "P5hBDBonm3",
"tax": 121
},
{
"id": 3,
"name": "buTTe8n3gT",
"tax": 82
},
{...}
]
```PRODUCT
```json
[
{
"id": 1,
"name": "explicabo alias hic reprehenderit deleniti quos id reprehenderit consequuntur ipsam iure voluptatem ea culpa excepturi ducimus repudiandae ab",
"price": 6945
},
{
"id": 2,
"name": "nostrum veritatis reprehenderit repellendus vel numquam soluta ex inventore ex",
"price": 2435
},
{
"id": 3,
"name": "praesentium explicabo reprehenderit laudantium a pariatur ab sit pariatur quos",
"price": 4985
},
{...}
]
```---
### Rotas
Para testar as requisições do projeto, é recomendável utilizar algum software de teste de API, como Postman ou Insomnia
Abaixo, alguns links de apoio:- [Postman](https://www.postman.com/downloads/)
- [Insomnia](https://insomnia.rest/download)Na tabela seguir, estão algumas orientações de quais rotas são possÃveis testar, o tipo de requisição e qual a ação esperada:
A URL base padrão é:
http://localhost:3333
Ação
Método HTTP
Rota
Listar todos os usuários
GET
"/users"
Listar todos os produtos
GET
"/products"
Fazer o calculo de orçamento
GET
"/budget/:userId/:productIds"
> OBS: Na rota de cálculo de orçamento, é possÃvel passar mais de um id em
:productIds
, separando cada id por vÃrgula (,)---
## Testes Unitários
Para a realização dos testes, foi utilizada framework Jest.
Você pode acessar mais detalhes sobre essa ferramenta através do link abaixo:- [Jest](https://jestjs.io/pt-BR/docs/getting-started)
Neste projeto, o Jest foi utilizado para testar se os middlewares se comportam da forma esperada, tendo em vista o status da resposta da requisição (
statusCode
), o tamanho da lista retornada (length
) e o calculo do orçamento (budget
) de acordo com os parâmetros passados na rota .O arquivo de teste se encontra dentro da pasta
middleware
:Para rodar os testes, basta rodar o comando abaixo no terminal, dentro do da pasta raiz do projeto:
```node
npm run test
```
---## Final
Em caso de dúvidas, erros ou mal funcionamento do código, você pode entrar em contato comigo através do e-mail:
📩 [email protected]