1
resposta

404 ao cadastrar resposta

Tentei implementar a parte de cadastrar resposta mas quando testei pelo postman recebi 404 not found

    @PostMapping("/{id}/resposta")
    @Transactional
    public ResponseEntity<RespostaDto> responder(@PathVariable Long idTopico, @RequestBody @Valid RespostaForm form, UriComponentsBuilder uriBuilder) {
        Topico topico = topicoRepository.getById(idTopico);
        Resposta resposta = form.converter();
        topico.adicionarResposta(resposta);

        URI uri = uriBuilder.path("/topicos/{id}/resposta/{idResposta}").buildAndExpand(topico.getId(), resposta.getId()).toUri();
        return ResponseEntity.created(uri).body(new RespostaDto(resposta));
    }
public class RespostaForm {

    @NotNull @NotEmpty @Length(min = 10)
    private String mensagem;

    public void setMensagem(String mensagem) {
        this.mensagem = mensagem;
    }


    public Resposta converter() {
        return new Resposta(mensagem);
    }

}
    public void adicionarResposta(Resposta resposta) {
        this.respostas.add(resposta);
        resposta.setTopico(this);
    }
1 resposta

Oi Beatriz,

O unico problema que identifiquei no codigo esta no controller:

@PathVariable Long idTopico

Como o seu parametro no metodo se chama idTopico mas na URI esta como id("/{id}/resposta"), voce precisa informar ao Spring isso:

@PathVariable("id") Long idTopico

Verifica se fazendo esse ajuste o problema resolve.