1
resposta

[Sugestão] Not Found no post

Usando o método post no register ex:

register(String content) async {
    await http.post(
      Uri.parse(getUrl()),
      headers: {"Content-Type": "aplication/json"},
      body: json.encode({"content": content}),
    );
  }

ele não atualiza o db.json, eu atribui a resposta em uma variavel e printei e ele da "Not found", porem utilizando o método .put ele funciona normalmente.

  register(String content) async {
    await http.put(
      Uri.parse(getUrl()),
      headers: {"Content-Type": "aplication/json"},
      body: json.encode({"content": content}),
    );
  }

Para funcionar no método post voce pode definir no db.json para ser um array,

{
  "learnhttp": []
}

Assim ele cria o objeto porem com um id aleatório fora o content, e sempre que você rodar cria um novo objeto no array. Pelo que entendi o método post no json-server espera trabalhar com um array por isso não atribui pra um objeto apenas, da usar ele se você excluir o objeto anterior antes de dar post toda vez, mas é mais fácil deixar como put.

1 resposta

Oi, Murilo! Tudo bem?

Obrigado por compartilhar seu código com a comunidade Alura. Sua análise sobre a utilização dos métodos post e put no json-server está certa sim. O post realmente espera trabalhar com arrays quando você está criando novos objetos e isso é importante para garantir que o servidor reconheça e armazene os novos dados adequadamente.

Agradecemos muito pela proatividade em compartilhar sua sugestão de código no fórum. Continue assim!

Conte com o apoio do fórum na sua jornada. Abraços e bons estudos!