Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Dúvida na execução do código

Os códigos das alternativas corretas abaixo, estão corretos? No campo data falta converter para JSON (ou XML), não? A não ser que a função .toMap() já faça isso internamente:

class ConsultaService {
  Dio dio = Dio();

  Future<void> editarConsulta(Consulta consulta) async {
    final response = await dio.put(
        'https://api.clinicavoll.com/consultas/${consulta.id}', 
        data: consulta.toMap(), // aqui
    );
    if (response.statusCode == 200) {
      print("Consulta alterada com sucesso.");
    } else {
      print("Erro ao alterar consulta.");
    }
  }
}
class ConsultaService {
  Dio dio = Dio();

  Future<void> registrarConsulta(Consulta consulta) async {
    final response = await dio.post('https://api.clinicavoll.com/consultas', 
        data: consulta.toMap(), // aqui
    );
    if (response.statusCode == 200) {
      print("Consulta registrada com sucesso.");
    } else {
      print("Erro ao registrar consulta.");
    }
  }
}
2 respostas
solução!

Olá Cleiton! Tudo bem?

No caso dessas implementações, a função toMap() deve retornar um Map<String, dynamic>, que é o formato que o Dio espera para enviar os dados.

No entanto, o Dio automaticamente converte o Map para JSON quando você passa o data como um Map. Portanto, não é necessário fazer a conversão manualmente usando json.encode(), a menos que você precise de um controle mais específico sobre a estrutura do JSON.

Se a função toMap() estiver implementada corretamente na classe Consulta, ela deve retornar os dados no formato adequado para serem enviados. Assim, as implementações que você trouxe estão corretas nesse aspecto!

Espero ter ajudado. Conte com o apoio do fórum em sua jornada :)

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Ah, bom saber!

Obrigado pelo retorno.