Fiquei muito assustado com a velocidade que é possível desenvolver um pequeno serviço RESTFul com o Spring Data Rest e tudo fica mais bonito ainda sendo o banco embarcado e o servidor também embarcado.
Primeiramente, segue o pom.xml, onde será possível ver os poucos pacotes que estou usando:
Estou apenas usando Spring Data JPA, Spring Data REST e o driver para conexão com o H2. Próximo passo, o arquivo de configurações application.properties fica assim:
Próximo ponto é criar uma entidade:
Agora, basta criarmos um Repository para essa entidade e colocarmos a annotation @RepositoryRestResource(path = “person”), que informará que nosso repositório será um resource Rest e será endereçado em “person/”:
Pronto, você já tem seu web service RESTFul com um CRUD de POST, GET, DELETE e PUT já criados e paginados também pela herança da classe PagingAndSortingRepository. Faça um teste, realize um GET em “http//:localhost:9000/person” e você verá algo como:
Agora, experimente fazer POST, PUT e DELETE seguindo o padrão de URL REST e também mediante os HATEOAS retornados.