API de tarefas criada sem framework web, usando HttpServer do JDK e Jackson para JSON.
Por padrao, os dados ficam em um banco H2 local e sobrevivem ao reinicio do servidor.
Execute davi.dev.Main pela IDE. Por padrao, o servidor usa a porta 8080.
Outra porta pode ser definida com -Dserver.port=8081 nas opcoes da JVM.
Para usar o repository em memoria durante o desenvolvimento, inicie com -Dstorage=memory.
| Metodo | Rota | Resultado |
|---|---|---|
GET |
/health |
Verifica se a API esta ativa |
GET |
/tasks |
Lista todas as tarefas |
POST |
/tasks |
Cria uma tarefa |
GET |
/tasks/{id} |
Busca uma tarefa |
PUT |
/tasks/{id} |
Substitui todos os dados editaveis |
PATCH |
/tasks/{id} |
Atualiza somente os campos enviados |
DELETE |
/tasks/{id} |
Exclui uma tarefa |
controllers: traduz HTTP para chamadas da aplicacao e define respostas HTTP.services: concentra regras de negocio e validacao.repositories: abstrai o armazenamento; a implementacao atual e em memoria.domain: representa a entidadeTaske controla suas alteracoes.dtoemappers: definem os contratos HTTP e convertem entidades em respostas.exceptionsehttp: padronizam erros e escrita das respostas JSON.resources/db/migration: migrations do banco executadas pelo Flyway.
$body = @{
title = "Estudar Java"
description = "Criar API sem Spring Boot"
} | ConvertTo-Json
$body | curl.exe -i -X POST "http://localhost:8080/tasks" `
-H "Content-Type: application/json" `
--data-binary "@-"O id, createdAt, updatedAt e completed=false sao definidos pela API.
O campo completed nao e aceito no POST; ele pode ser alterado por PUT ou PATCH.
No PATCH, enviar description: null limpa a descricao. Corpos maiores que 1 MB sao rejeitados.