Projeto de uma API para controle de orçamento familiar. A API deve permitir que uma pessoa cadastre suas receitas e despesas do mês, bem como gerar um relatório mensal.
| 🪧 Vitrine.Dev | |
|---|---|
| ✨ Nome | financas-api |
| 🏷️ Tecnologias | Java, Spring Boot, Spring Data JPA, Spring Security OAuth, Maven |
| 🚀 URL | TBD |
| 🔥 Desafio | https://www.alura.com.br/challenges/back-end |
Funcionalidade 1Cadastro de despesas: A API deve possuir um endpoint para o cadastro de despesas, sendo que ele deve aceitar requisições do tipo POST para a URI /despesas. Os dados da despesa(descrição, valor e data) devem ser enviados no corpo da requisição, no formato JSON.Funcionalidade 2Cadastro de receitas: A API deve possuir um endpoint para o cadastro de receitas, sendo que ele deve aceitar requisições do tipo POST para a URI /receitas. Os dados da receita(descrição, valor e data) devem ser enviados no corpo da requisição, no formato JSON.
Java 8InteliJ IDEASpring Boot, Spring Data JPA, Spring Security OAuthMySQLMavenFlywayLombokBean ValidationOpenAPI (Swagger)OAuth2 e JWT
Criação e evolução do schema do banco de dados com FlywayUtilização do Lombok nas classes para reduzir código boilerplateValidações de entradas de dados na API com Bean ValidationDocumentação com OpenAPI (Swagger)Segurança com Spring Security, OAuth2 e JWTTratamento e modelagem de erros da APIModelagem de erros seguindo a RFC 7807 (Problem Details for HTTP APIs)
Boas práticas e modelagem avançada de APIsDTOs como alternativa ao uso de entidades como modelo de representação dos recursosModelMapper para fazer Object Mapping e converter DTOs em entidades e vice-versaUUID para identificar recursos sensíveis
TestesTestes de unidadeTestes de integraçãoTestes e2e automatizados para a API. Cada funcionalidade está descrita nos arquivos de feature do Gherkin, que sabe interpretar a linguagem natural, e o Cucumber automatiza todos os critérios de aceite
O deploy da aplicação no heroku, podendo ser acessada por esse link.
Você pode acessar os arquivos do projeto de teste e2e clicando aqui.
