Minhas finanças
Requisitos
Java 8+
Utilizar Maven ou Gradle
Seguir os padrões REST
Banco de dados H2
Descrever as instruções para rodar o projeto no README.md
Utilizar Git
Utilizar Springboot versão 2.1.0
Avaliação
Clean Code
Implementação da especificação
README.md bem escrito
Commits bem escritos
Importante, nessa ordem:
Criar testes automatizados (teste unitário e teste de integração)
Fazer uso de bibliotecas auxiliares
CircleCI ou TravisCI
Documentar a API com Swagger
Especificação
Criar uma API Rest que ira gerenciar as finanças dos seus usuários. A API deve conter endpoints para:
Criar um usuário
Visualizar todos os usuários
Ver detalhes de um usuário
Criar um lançamento financeiro
Buscar todos os lançamentos de um determinado usuário
Buscar um determinado lançamento pelo usuário e pelo id
Criar entidades para um usuário
Visualizar entidades de um usuário
Criar contas para um usuário
Visualizar todas as contas de um usuário
Visualizar uma determinada conta de um usuário
Visualizar todos os lançamento de uma determinada conta de um determinado usuário
Baixar uma determinada conta de um determinado usuário
Estornar uma determina conta de um determinado usuário
Endpoints
Usuários
Criar usuário
POST
http://localhost:8080/financas/usuario
Request Body
object
{
"nome": "Exemplo",
"email": "exemplo@exemplo.com",
"status": "ATIVO"
}
Buscar todos os usuários
GET
http://localhost:8080/financas/usuario
Buscar usuário por id
GET
http://localhost:8080/financas/usuario/:id
Lançamento Financeiro
Um lançamento financeiro pode ser:
A Pagar
A Receber
Criar um lançamento financeiro
POST
http://localhost:8080/financas/usuario/:id/entidade/:id/lancamento
Request Body
object
{
"descricao": "Lanchonete",
"observacao": "Esqueci o cartão",
"valor": 16.50,
"tipo": "RECEBER"
}
Buscar todos os lançamentos de um usuário
GET
http://localhost:8080/financas/usuario/:id/lancamento
Buscar um lançamento por id
GET
http://localhost:8080/financas/usuario/:id/lancamento/:id
Entidade
Uma entidade pode ser do tipo:
Cliente
Fornecedor
Criar uma entidade
POST
http://localhost:8080/financas/usuario/:id/entidade
Path Parameters
object
{
"nome": "Advocacia S.A",
"tipo": "FORNECEDOR"
}
Buscar todas as entidades de um usuário
GET
http://localhost:8080/financas/usuario/:id/entidade
Buscar entidade por id
GET
http://localhost:8080/financas/usuario/:id/entidade:id
Conta
Criar uma conta
POST
http://localhost:8080/financas/usuario/:id/conta
Request Body
string
{ "nome": "Banco do Brasil" }
Buscar todos os lançamento de uma conta
GET
http://localhost::8080/financas/usuario/:id/conta/:id/lancamentos
Path Parameters
string
Buscar todas as contas de um usuário
GET
http://localhost:8080/financas/usuario/:id/conta
Buscar conta por id
GET
http://localhost:8080/financas/usuario/:id/conta/:id
Baixar um lançamento
POST
http://localhost:8080/financas/usuario/:id/conta/:idconta/:idlancamento?do=baixar
Path Parameters
do
string
Baixar
Estornar um lançamento
POST
http://localhost:8080/financas/usuario/:id/conta/:idconta/:idlancamento?do=estornar
Path Parameters
string
Last updated
Was this helpful?