Skip to content

gbarcelos/financas-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

financas-api

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

thumbnail-financas-api

🔨 Funcionalidades do projeto

  • Funcionalidade 1 Cadastro 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 2 Cadastro 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.

✔️ Tecnologias utilizadas

Java IntelliJ Spring MySQL Heroku

  • Java 8
  • InteliJ IDEA
  • Spring Boot, Spring Data JPA, Spring Security OAuth
  • MySQL
  • Maven
  • Flyway
  • Lombok
  • Bean Validation
  • OpenAPI (Swagger)
  • OAuth2 e JWT

✔️ Técnicas utilizadas

  • Criação e evolução do schema do banco de dados com Flyway
  • Utilização do Lombok nas classes para reduzir código boilerplate
  • Validações de entradas de dados na API com Bean Validation
  • Documentação com OpenAPI (Swagger)
  • Segurança com Spring Security, OAuth2 e JWT
  • Tratamento e modelagem de erros da API
    • Modelagem de erros seguindo a RFC 7807 (Problem Details for HTTP APIs)
  • Boas práticas e modelagem avançada de APIs
    • DTOs como alternativa ao uso de entidades como modelo de representação dos recursos
    • ModelMapper para fazer Object Mapping e converter DTOs em entidades e vice-versa
    • UUID para identificar recursos sensíveis
  • Testes
    • Testes de unidade
    • Testes de integração
    • Testes 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

🛠️ Deploy

O deploy da aplicação no heroku, podendo ser acessada por esse link.

📁 Acesso ao projeto de testes e2e

Você pode acessar os arquivos do projeto de teste e2e clicando aqui.