1
resposta

Não consigo agendar consulta

Pelo app sempre que tento agendar a consulta me retorna a mensagem de erro: Ocorreu um erro ao agendar consulta keyNotFound(CodingKeys(stringValue: "id", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: "id", intValue: nil) ("id").", underlyingError: nil))
Pelo insomnia consegui agendar uma consulta para a mesma data que estou tentando no app.

1 resposta

Olá, Vânia!

Obrigado por compartilhar o seu problema. A mensagem de erro que você mostrou, keyNotFound("id"), é bem específica e nos dá uma pista do que está acontecendo.

Pelo que parece, a sua aplicação iOS está tentando decodificar a resposta da requisição POST e espera encontrar uma chave chamada "id". No entanto, a API que você está usando para agendar a consulta pode estar retornando um JSON que não inclui essa chave.

O fato de funcionar no Insomnia é um ótimo ponto de partida. Isso nos mostra que o agendamento em si está funcionando. A diferença está na resposta que a API envia de volta.

Para te ajudar a solucionar isso, tenho algumas sugestões:

  1. Verifique a Resposta da API: No Insomnia, depois de agendar a consulta, observe a resposta exata que a API retorna. Ela deve ser um JSON. Verifique se existe um campo chamado "id" dentro desse JSON.

  2. Ajuste o struct de Decodificação: No seu código SwiftUI, o struct que você está usando para decodificar a resposta da requisição POST deve ter um campo id. Se a API não estiver retornando um id, você pode precisar ajustar o seu struct para que esse campo seja opcional, usando var id: String?, ou remover a expectativa de receber essa chave.

  3. Código do Curso: Como você mencionou que está fazendo um curso, vale a pena voltar no material e revisar exatamente como o struct de decodificação foi montado e o que a API do curso deveria retornar. Às vezes, um detalhe pequeno na implementação do struct pode causar esse tipo de erro.

Conferir a resposta no Insomnia e compará-la com o seu código de decodificação no SwiftUI é o caminho mais rápido para encontrar a solução.

Espero que ajude! Me avise se você conseguir resolver.