Uma aplicação com uma simplicidade nas regras mas abordando todas as melhores práticas de desenvolvimento como:
- Código limpo
- Testes Unitários
- Docker para subir uma instância de base de dados
O projeto foi elaborado nesse vídeo da .
- SOLID, DRY, YAGNI, KISS
- API REST
- Consultas com Spring Data JPA
- Injeção de Dependências
- Tratamento de respostas de erro
- Geração automática do Swagger com a OpenAPI 3
- Criar a base de dados antes de rodar, pois o JPA só cria as tebalas se houver uma base de dados
- Clonar repositório git
- Construir o projeto:
$ ./mvnw clean package
- Executar a aplicação:
$ java -jar target/todolist-0.0.1-SNAPSHOT.jar
A API poderá ser acessada em localhost:8080. O Swagger poderá ser visualizado em localhost:8080/swagger-ui.html
Para fazer as requisições HTTP abaixo, foi utilizada a ferramenta REST Client:
- Listar todos
### GET ALL
GET http://localhost:8080/todos
Accept: application/json
- Criar a tarefa
POST http://localhost:8080/todos
content-type: application/json
{
"name": "Tarefa menos importante",
"description": "Separa os documentos para o deposito",
"done": false,
"priority": 3
}
- Atualizar a tarefa
PUT http://localhost:8080/todos
content-type: application/json
{
"id": 1,
"name": "Tarefa mais importante",
"description": "Concluir o projeto até o final do mês de abril",
"done": false,
"priority": 1
}
- Remover a tarefa
DELETE http://localhost:8080/todos/2
Criar uma base de dados
CREATE DATABASE todolist;
Conceder privilégios a um usuário na base de dados
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%';
Recarregar as permissões do MySQL para que as alterações entrem em vigor imediatamente
FLUSH PRIVILEGES;
Consulta para visualizar as permissões concedidas aos usuários
SELECT user, host, authentication_string, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Alter_priv, Create_tmp_table_priv, Lock_tables_priv, Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Execute_priv, Event_priv, Trigger_priv
FROM mysql.user;
Todos os crétidos a o meu mais muito obrigado por compartilhar o conteúdo