Pessoal, encontrei diversos tópicos com este problema que me deparei ontem, em todos eles é marcado como solucionado pelos instrutores da alura mas os alunos sempre reclamando que não é a solução.
Acredito que faltou um pouco de vontade de ambas as partes, mas mais da parte da Alura.
Fiz uma pequena leitura no github do json-server e descobri porque conforme instruído na aula não está refletindo no projeto em 2024.
O json-server quando criamos o db.json da forma que é instruído na aula:
{
"learnhttp": {}
}
Esta forma aceita apenas 3 tipos de rotas GET, PUT e PATCH. Para utilizar o POST conforme é instruído na aula, deve-se criar como um array:
{
"learnhttp": []
}
Desta forma é liberado outras rotas como
GET /learnhttp
GET /learnhttp/:id
POST /learnhttp
PUT /learnhttp/:id
PATCH /learnhttp/:id
DELETE /learnhttp/:id
Portanto a solução para quem está com esta dificuldade é apenas trocar o http.post
para ``http.put``` e o comportamento será idêntico ao da aula.
Porém deve-se informar o header com Content-Type também.
register(String content) {
http.put(Uri.parse(getUrl()),
body: json.encode(
{"content": content},
),
headers: {'Content-Type': 'application/json'});
}