Este repositório contém uns desafios de back-end proposto por algumas empresas.
Os desafios são divididos em pastas.
Este repositório contém a implementação do desafio técnico proposto pela PicPay para a vaga de back-end.
O desafio consiste em criar uma API REST para realizar transferências entre usuários. As principais funcionalidades são:
Para executar o projeto na sua máquina, siga os passos abaixo:
1. Clone o repositório
https://github.com/Cry199/Desafios-Back-end.git
2. Navegue até a pasta do projeto
cd Desafios\picpaydesafiobackend
3. Execute o comando para build
mvn clean install
4. Execute a aplicação
mvn spring-boot:run
A API estará disponível em http://localhost:8080
.
5. Acesse os endpoints
Agora você pode acessar os endpoints da API no seu navegador ou ferramenta como Postman.
Por exemplo, para cadastrar um novo usuário:
POST /users
{ "firstName": "Teste", "lastName": "Teste", "document": "122345671223", "email": "teste@gmail.com", "userType": "COMMON", "balance": 10, "password": "Teste" }
As rotas da API são:
POST /users
- Cadastro de novo usuárioGET /users
- Listar todos os usuários cadastradosPOST /transfers
- Realiza transferência entre usuáriosRota para cadastro de novo usuário.
Request body: Objeto JSON representando um usuário com os campos firstName, lastName, document, email, userType, balance e password.
Exemplo de request body:
{ "firstName": "Cauã", "lastName": "Ribeiro", "document": "122345671223", "email": "teste@gmail.com", "userType": "COMMON", "balance": 10, "password": "senha" }
Response: Objeto JSON representando o usuário criado, contendo os campos id e demais campos submetidos no cadastro.
Exemplo de response:
{ "id": 1, "firstName": "Cauã", "lastName": "Ribeiro", "document": "122345671223", "email": "teste@gmail.com", "password": "senha", "balance": 10, "userType": "COMMON" }
Rota para listar todos os usuários cadastrados.
Parâmetros: Nenhum
Response: Array de objetos JSON representando os usuários.
Exemplo de response:
[ { "id": 1, "firstName": "Cauã", //...demais campos }, { "id": 2, "firstName": "Helo", //...demais campos } ]
Rota para realizar transferência entre contas.
Request body: Objeto JSON representando a transferência, com os campos amount, sender e receiver.
Exemplo de request body:
{ "senderId": 1, "receiverId": 2,"value": 1}
Response: Objeto JSON representando transferência efectuada, incluindo o campo timestamp.
Exemplo de response:
{"id":1,"anount":1,"sender":{"id":2,"firstName":"Cauã","lastName":"Ribeiro","document":"122345671223","email":"teste@gmail.com","password":"senha","balance":9.00,"userType":"COMMON"},"receiver":{"id":3,"firstName":"Helo","lastName":"Ribeiro","document":"12234567","email":"teste1@gmail.com","password":"senha","balance":11.00,"userType":"COMMON"},"timestamp":"2023-10-18T15:59:05.1549889"}
Este projeto foi desenvolvido como parte do desafio proposto pela PicPay. Foi um excelente exercício para praticar boas práticas de API REST com Spring Boot e documentação.
Em Construção (❁´◡`❁)
Criado por Cry199 como material de estudo.