/StockSim

Primary LanguageJava

CircleCI

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

  1. Spring Boot
  2. Spring JPA
  3. ModelMapper
  4. Lombok
  5. PostgreSQL
  6. Docker
  7. Swagger

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