StockSim
Uma API que estou construíndo para propósitos de estudos, juntando duas coisas que eu gosto muito, o mercado de renda variável e programação.
Objetivo
Essa api tem como por objetivo realizar a simulação de compras e vendas de ativos na bolsa de valores, para alcançar o objetivo desejado, irei utilizar uma API externa para acompanhar a cotação da bolsa, por enquanto a api será a HG BRASIL, essa API permite realizar 400 request por dia, portanto o acompanhamento dos ativos precisam ser bem distribuídos, impedindo que seja realizado em tempo real.
Tecnologias Utilizadas
Utilizando API
📁 Coleção: User
End-point: Get User
Descrição: Nesse Endpoint é possível obter informações a respeito de um usuário específico, deve ser realizado uma requisição do tipo GET, passando como parâmetro o UUID do usuário desejado.
Método: GET
http://{{connectAddress}}/api/v1/user/UUID
Headers
Content-Type | Value |
---|---|
Authorization | BEARER {{token}} |
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
End-point: Get All Users
Descrição: Nesse EndPoint é possível listar e obter as informações de todos os usuários cadastrados na aplicação.
Método: GET
http://{{connectAddress}}/api/v1/user/
Headers
Content-Type | Value |
---|---|
Authorization | Bearer {{token}} |
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
End-point: Buy Quote
Descrição: Nesse EndPoint é possível realizar a compra/venda de um ativo previamente cadastrado no banco de dados da aplicação, para a compra deve ser passado para o atributo "operationType" um dos seguintes valores: 1 ou "BUY". Após a compra ser realizada com sucesso, será disparado um e-mail para o usuário que realizou a compra, nesse e-mail é informado o ativo comprado e a quantidade.
Método: POST
http://{{connectAddress}}/api/v1/user/quote
Headers
Content-Type | Value |
---|---|
Authorization | BEARER {{token}} |
Body (raw)
{
"symbol": "MGLU3",
"quantity": 50,
"operationType": "BUY"
}
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
End-point: Sell Quote
Descrição: Nesse EndPoint é possível realizar a compra/venda de um ativo previamente cadastrado no banco de dados da aplicação, para a compra deve ser passado para o atributo "operationType" um dos seguintes valores: 0 ou "SELL". Após a venda ser realizada com sucesso, será disparado um e-mail para o usuário que realizou a venda, nesse e-mail é informado o ativo vendido e a quantidade.
Método: POST
http://{{connectAddress}}/api/v1/user/quote
Headers
Content-Type | Value |
---|---|
Authorization | BEARER {{token}} |
Body (raw)
{
"symbol": "MXRF11",
"quantity": 200,
"operationType": 0
}
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
📁 Coleção: Quote
End-point: Create Quote
Descrição: Nesse EndPoint é possível incluir um ativo da bolsa de valores no banco de dados da aplicação, para isso basta enviar uma requsição do tipo POST contendo no atributo symbol o código do ativo desejado na base de dados.
Método: POST
http://{{connectAddress}}/api/v1/quote
Headers
Content-Type | Value |
---|---|
Authorization | BEARER {{token}} |
Body (raw)
{
"symbol": "MXRF11"
}
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
End-point: Get Quote
Descrição: Nesse EndPoint é possível obter informações a respeito de um determinado ativo previamente incluído no banco de dados, bastando apenas passar o código do mesmo como parâmetro na URL.
Método: GET
http://{{connectAddress}}/api/v1/quote/PETR4
Headers
Content-Type | Value |
---|---|
Authorization | BEARER {{token}} |
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
End-point: Get All Quotes
Descrição: Nesse EndPoint é possível listar e obter informações a respeito de todos ativos previamente cadastrados no banco de dados.
Método: GET
http://{{connectAddress}}/api/v1/quote
Headers
Content-Type | Value |
---|---|
Authorization | BEARER {{token}} |
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
📁 Coleção: Security
End-point: 🔑 Basic Authentication EndPoint
Descrição: Nesse EndPoint é realizado a autenticação utilizando O Basic Auth, portanto aqui é enviado no Header Authorization contendo o login e senha no seguinte formato: 'BASIC login:senha', esses dados devem ser codificado para base 64 conforme o Padrão MIME.
Método: GET
http://{{connectAddress}}/api/basicauth
Headers
Content-Type | Value |
---|---|
Authorization | Basic dXNlcjE6bHVpejEyMw== |
Estrutura do Projeto
- 📂 StockSim
- 📄 README.md
- 📄 build.gradle
- 📄 docker-compose.yml
- 📄 dockerfile
- 📄 list.md
- 📄 realm-export.json
- 📄 settings.gradle
- 📂 src
- 📂 main
- 📂 java
- 📂 com
- 📂 luizfrra
- 📂 stockSim
- 📂 Configurations
- 📂 Controllers
- 📂 Commons
- 📂 Exception
- 📂 Quote
- 📂 User
- 📂 DTOs
- 📂 Commons
- 📂 Quote
- 📂 User
- 📂 UserQuotes
- 📂 EntitiesDomain
- 📂 Exception
- 📂 Message
- 📂 Quote
- 📂 User
- 📂 UserQuotes
- 📂 UserRegister
- 📂 Exceptions
- 📂 HGBrasil
- 📂 RabbitMQ
- 📂 Repositories
- 📂 Quote
- 📂 User
- 📂 UserQuotes
- 📂 Responses
- 📂 Security
- 📂 Services
- 📂 Commons
- 📂 Quote
- 📂 User
- 📂 UserQuotes
- 📄 StockSimApplication.java
- 📂 Utils
- 📂 stockSim
- 📂 luizfrra
- 📂 com
- 📂 resources
- 📂 java
- 📂 test
- 📂 java
- 📂 com
- 📂 luizfrra
- 📂 stockSim
- 📂 luizfrra
- 📂 com
- 📂 resources
- 📂 java
- 📂 main