Skip to content

Davi0416/raw-java-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raw Java API

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.

Executar

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.

Rotas

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

Organizacao

  • 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 entidade Task e controla suas alteracoes.
  • dto e mappers: definem os contratos HTTP e convertem entidades em respostas.
  • exceptions e http: padronizam erros e escrita das respostas JSON.
  • resources/db/migration: migrations do banco executadas pelo Flyway.

Criar uma tarefa no PowerShell

$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.

About

REST task API built without a web framework, using JDK HttpServer, Jackson, H2 and Flyway to explore HTTP from the ground up.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages