Para criar um método POST, precisamos mapeá-lo. Para isso existem duas formas, através da anotação @RequestMapping passando como value a URL e o método HTTP.

Untitled

Porém, desse modo em um mesmo controller, em todo novo método a URL deveria ser declarada, e isso dificulta na manutenção do código.

Por isso, é recomendado utilizar a segunda forma, onde a URL é declarada uma única vez na anotação @RequestMapping na declaração da classe e os métodos HTTP são definidos por anotações próprias.

Untitled

Com o método Post mapeado, é preciso informar ao Spring que os parâmetros que serão recebidos estão no corpo da requisição, fazemos isso utilizando a anotação @RequestBody.

Untitled

Untitled

DTO e Form

Quando criamos o método lista, utilizamos um DTO para enviar os dados ao cliente. Dessa vez, precisamos que o cliente nos envie dados, para isso utilizamos uma outra classe, chamada de form.

Da mesma maneira que o DTO só tem atributo de tipo primitivo, o Form também será assim. Além de também ter getters e setters.

Untitled

Boas práticas no cadastro

Para seguir as boas práticas do modelo REST, um cadastro deve retornar o código HTTP 201, que significa que uma requisição foi processada com sucesso e um novo recurso foi criado no servidor.

Para que retornar esse código, o método não pode retornar void, mas sim o objeto ResponseEntity com um DTO.

Esse objeto devolve o código HTTP, um cabeçalho com o location (URL do recurso criado), e um corpo com uma representação do recurso criado.