Esta é uma API REST desenvolvida para o gerenciamento de listas de desejos. O projeto foi construído utilizando práticas modernas de desenvolvimento backend, focando em escalabilidade, segurança e portabilidade através de conteinerização.
A documentação interativa da API pode ser acessada via Swagger UI após a inicialização do projeto.
Nota: Recomenda-se inserir aqui um GIF ou screenshot do seu Swagger funcionando, demonstrando uma requisição POST e o retorno do JSON com os campos de auditoria.
- Linguagem: Java 21 (LTS)
- Framework: Spring Boot 3.x
- Persistência: Spring Data JPA / Hibernate
- Banco de Dados: PostgreSQL 18
- Documentação: SpringDoc OpenAPI (Swagger)
- Infraestrutura: Docker e Docker Compose
- Validação: Bean Validation (Jakarta)
O projeto utiliza o padrão DTO (Data Transfer Object) para garantir o desacoplamento entre a camada de banco de dados (Entity) e a camada de apresentação, evitando a exposição desnecessária de atributos internos da aplicação.
Implementação de JPA Auditing para rastreabilidade, onde campos como dataCriacao e dataAtualizacao são preenchidos automaticamente pelo ciclo de vida do Hibernate, sem intervenção manual no código de negócio.
Utilização de @RestControllerAdvice para capturar e formatar exceções, garantindo que o cliente da API receba respostas padronizadas mesmo em cenários de erro.
Uso de Bean Validation (Jakarta) para assegurar que apenas dados íntegros entrem no sistema, retornando erros descritivos ao cliente em caso de payloads inválidos.
- Docker e Docker Compose instalados.
git clone [https://github.com/DerekMA15/spring-wishlist-api.git](https://github.com/DerekMA15/spring-wishlist-api.git)cd spring-wishlist-api
docker-compose up --build
4. A API estará disponível em http://localhost:8080.
docker-compose up --build
- GET - /api/wishlist - Lista itens com suporte a paginação e ordenação.
- POST - /api/wishlist - Registra um novo item na lista.
- PATCH - /api/wishlist/{id}/comprar - Marca um item específico como comprado.
Este projeto está licenciado sob a Licença MIT. Esta licença permite o uso, cópia, modificação e distribuição do software de forma livre, desde que os direitos autorais e o aviso de permissão sejam incluídos em todas as cópias. Para mais detalhes, consulte o arquivo LICENSE.