Api construída ao longo do curso Spring Boot 2 Essentials da DevDojo, com finalidade de explorar os principais tópicos envolvendo desenvolvimento de APIs com Spring, como:
- Criação de endpoints
- Spring Data JPA
- Spring Security
- Tratamento de exceções
- Testes unitários
- Testes de integração
Com o objetivo de aprendizado esse projeto se trata de uma API Rest com todas as funcionalidades de um CRUD implementadas. Gerenciamos uma entidade Anime que possui apenas id e nome para fins ilustrativos e à partir disso foram criados os seguintes endpoints:
Nos métodos delete e by-id, adicionei features do Spring Security, sendo a requisição delete apenas efetuada por usuários do tipo ADMIN e o by-id foi usado autenticação no banco de dados.
Clone o projeto com:
git clone https://github.com/mmacedoaraujo/springboot2-essentials.git
Em seguida abra-o como projeto Maven em uma IDE
Caso possua o docker instalado no seu sistema operacional, bastar abrir um terminal na pasta raiz do projeto e digitar:
docker compose up
Um container docker com uma imagem MySQL será criado, optei por configurar a porta 3307 para não haver interferência com qualquer outra instância do MySQL que possa estar rodando. Caso deseje alterar as configurações do banco de dados, basta acessar o arquivo application.yml em:
src/main/resources/application.yml
E o arquivo docker-compose.yml na pasta raiz
Basta executar a classe:
src/main/java/com/mmacedo/springboot2essentials/Springboot2EssentialsApplication.java
Em seguida, abra no navegador o endereço http://localhost:8080/swagger-ui.html, onde será pedido um usuário e senha, insira:
usuário: marcosadmin
senha: password
Pronto, agora você tem acesso à interface do Swagger para testar os métodos de requisição da API!
- Spring Boot Starter Validation
- SpringDoc OpenAPI UI
- Spring Boot Starter Security
- Spring Boot Starter Data JPA
- MySQL Connector Java
- Spring Boot Starter Web
- Spring Boot Starter DevTools
- Lombok
- Mapstruct
- Spring Boot Starter Test
- H2
