Eu estava pesquisando um pouco sobre o assunto e fiz um pequeno exemplo nesse repositório aqui: https://github.com/Matheus1714/sample-java-api
Eu não usei nenhum pacote externo ou framework.
A parte difícil disso é que o projeto fica bagunçado bem rápido se não manter uma estrutura boa.
Fique tendo que fazer muitas manipulações com String no processo.
Talvez eu melhore um pouco a estrutura do repositório em algumas camadas a mais para ver como fica. Eu já tinha feito isso com Javascript
, mas nunca com Java
.