Este projeto é uma API RESTful desenvolvida usando Spring Boot, Java 17 e Hibernate. O projeto fornece um CRUD para a entidade User
, com funcionalidades de criação, leitura, atualização e exclusão de usuários. Além disso, inclui tratamento de exceções personalizadas e testes unitários para garantir a qualidade do código.
- Spring Boot: Framework para desenvolvimento de aplicações Java.
- Spring Data JPA: Facilita a implementação de repositórios de dados.
- Spring Security: Gerencia a segurança da aplicação.
- Spring Actuator: Fornece endpoints para monitoramento e gerenciamento.
- SpringDoc OpenAPI: Gera documentação da API.
- JUnit 5: Framework de testes.
- Mockito: Framework para criação de mocks e testes unitários.
- H2 Database: Banco de dados em memória para testes.
- Lombok: Reduz a quantidade de código boilerplate.
- POST /api/users: Cria um novo usuário.
- GET /api/users/{id}: Obtém um usuário pelo ID.
- GET /api/users: Obtém todos os usuários.
- PUT /api/users/{id}: Atualiza um usuário existente.
- DELETE /api/users/{id}: Deleta um usuário pelo ID.
- UserNotFoundException: Lançada quando um usuário não é encontrado.
- UsernameAlreadyExistsException: Lançada quando um nome de usuário já existe.
Para compilar e executar o projeto, siga os seguintes passos:
-
Clonar o Repositório
git clone https://github.com/seu-usuario/criandoapis.git cd criandoapis
-
Compilar e Executar
mvn clean install mvn spring-boot:run
A API estará disponível em http://localhost:8080/api/users.
Para executar os testes, use o seguinte comando:
mvn clean install
A documentação da API está disponível em http://localhost:8080/swagger-ui/index.html através do SpringDoc OpenAPI.