1
resposta

Erro ao tentar Salvar Novo Registro após refatorar o CriaAutor() do ApiService.js

Após refatorar o ApiService.js, deixando ele assim:

const consomeApi = ( parametro='', method='GET', bodyNovoAutor ) => {
                                                                        return fetch( `${urlBase}/${parametro}`,                                                                                       
                                                                                                 { method, headers: {'content-type': 'application/json'}, bodyNovoAutor } 
                                                                                    )
                                                                                    .then(res => ApiService.TrataErros(res))
                                                                                    .then(res => res.json())
                                                                }
...
CriaAutor: novoAutor => consomeApi('', 'POST', novoAutor),

começou a dar erro de

POST http://localhost:8000/api/autor/ 400 (Bad Request)

Para parar de dar erro, tive que mudar para:

const consomeApi = ( parametro='', method='GET', bodyNovoAutor ) => {
                                                                        return fetch( `${urlBase}/${parametro}`,                                                                                       
                                                                                           // { method, headers: {'content-type': 'application/json'}, bodyNovoAutor } 
                                                                                          { 'method':method, headers: {'content-type': 'application/json'}, 'body':bodyNovoAutor } 
                                                                                    )
                                                                                    .then(res => ApiService.TrataErros(res))
                                                                                    .then(res => res.json())
                                                                }
...
CriaAutor: novoAutor => consomeApi('', 'POST', novoAutor),

e com essa alteração funcionou.

Esses nomes dos campos 'method' e 'body' antes de passar o method e o bodyNovoAutor antes eram opcionais e funcionava e agora é obrigatório e não funciona mais sem os nomes dos campos ?

Fiquei nessa dúvida

1 resposta

Fala ai André, tudo bem? Na verdade o problema está na passagem do body, a API retornou erro 400 porque ela não deve ter recebido o body.

Seu código anterior estava:

{ method, headers: {'content-type': 'application/json'}, bodyNovoAutor }

No caso o bodyNovoAutor deveria ser mapeado para a propriedade body, ficando:

{ method, headers: {'content-type': 'application/json'}, body: bodyNovoAutor }

Isso deveria resolver o problema e agora enviar os dados no body da requisição para a API.

Espero ter ajudado.