Olá, Rafael.
Tudo bem?
Muito obrigado pelas suas observações e sugestões. Elas são realmente úteis para quem está enfrentando problemas na aula do primeiro teste de requisição à API. Parabéns.
A sua sugestão sobre a importação do pacote 'dart:convert' e o uso do json.encode no body é uma boa prática quando estamos trabalhando com dados em JSON. Isso permite que os dados sejam corretamente formatados para a requisição. No entanto, no exemplo da aula, a requisição foi feita sem a necessidade de codificação em JSON, pois o pacote HTTP já faz isso automaticamente quando passamos um Map para o body da requisição.
Sobre o db.json ser uma lista ao invés de um objeto, isso depende da estrutura de dados que você precisa. No exemplo da aula, o db.json é um objeto com uma única propriedade "learnhttp", que é uma lista. Isso permite que você adicione múltiplos registros a essa lista. Se o db.json fosse uma lista diretamente, você só poderia adicionar um único registro a ela.
A sua observação sobre as versões mais novas do json-server é pertinente. As versões mais recentes podem ter alterado o comportamento padrão e isso pode causar confusão. É sempre uma boa ideia verificar a documentação oficial para garantir que você está seguindo as práticas recomendadas.
Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.