Este projeto foi desenvolvido como parte do curso gratuito de Java oferecido pela Rocketseat. Trata-se de uma API Rest para gerenciamento de lista de tarefas, construída em Java com o framework Spring Boot.
- Separação de Responsabilidades: Implementamos uma estrutura de código que segue as boas práticas de separação de responsabilidades entre controllers e repositórios. Isso torna o código mais organizado e de fácil manutenção.
- Filtro para Autenticação e Validação: Criamos um filtro para a rota
/tasksque garante a autenticação do usuário e valida as solicitações. Isso aumenta a segurança e a integridade dos dados. - Error Handler: Desenvolvemos um mecanismo de tratamento de erros para fornecer respostas claras e adequadas em caso de problemas durante as solicitações.
- Java >= 17;
- Maven;
- Rest client;
- Spring JPA;
- Lombok;
- BCrypt;
- H2 Database;
Request body
{
"name": string,
"username": string,
"password": string
}Response
{
"id": UUID,
"username": string,
"name": string,
"createdAt": YYYY-MM-DDThh:mm:ss
}Header
Authorization: Basic Base64 (username:password)
Request
{
"title": string,
"description": string,
"priority": 0 | 1 | 2 | 3 | 4,
"startAt": YYYY-MM-DDThh:mm:ss,
"endAt": YYYY-MM-DDThh:mm:ss
}
Response
{
"id": UUID,
"title": string,
"description": string,
"priority": 0 | 1 | 2 | 3 | 4,
"startAt": YYYY-MM-DDThh:mm:ss,
"endAt": YYYY-MM-DDThh:mm:ss,
"createdAt": YYYY-MM-DDThh:mm:ss,
"userId": UUID
}Header
Authorization: Basic Base64 (username:password)
Response
{
"id": UUID,
"title": string,
"description": string,
"priority": 0 | 1 | 2 | 3 | 4,
"startAt": YYYY-MM-DDThh:mm:ss,
"endAt": YYYY-MM-DDThh:mm:ss,
"createdAt": YYYY-MM-DDThh:mm:ss,
"userId": UUID
}[]Header
Authorization: Basic Base64 (username:password)
Response
{
"id": UUID,
"title": string,
"description": string,
"priority": 0 | 1 | 2 | 3 | 4,
"startAt": YYYY-MM-DDThh:mm:ss,
"endAt": YYYY-MM-DDThh:mm:ss
}Response
{
"id": UUID,
"title": string,
"description": string,
"priority": 0 | 1 | 2 | 3 | 4,
"startAt": YYYY-MM-DDThh:mm:ss,
"endAt": YYYY-MM-DDThh:mm:ss,
"createdAt": YYYY-MM-DDThh:mm:ss,
"userId": UUID
}- Adicionar endpoint para excluir tarefa;
- Documentar a API utilizando Swagger;
- Adicionar testes para cada endpoint;
- Substituir o H2 para o Postgress;
- Melhorar o processo de autenticação.
