1
resposta

Erro ao obter o id

Durante a execução do curso, não sei se houve alguma atualização da biblioteca, mas o código apresentava o seguinte erro: invalid operation: cannot call non-function vars (variable of type map[string]string)1

a solução foi modificar a forma de obter o id:

    id, err := strconv.Atoi(vars["id"])
1 resposta

Olá José!

Pelo que entendi, você estava tendo um erro ao obter o ID em seu código. A solução que você encontrou foi modificar a forma de obter o ID usando a função strconv.Atoi(vars["id"]). Essa função converte uma string para um valor inteiro.

No contexto fornecido, parece que você está trabalhando em um projeto de API Rest em Go, e está com dúvidas sobre como buscar um recurso específico. No código que você compartilhou, a função RetornaUmaPersonalidade é responsável por retornar uma única personalidade com base no ID fornecido.

Aqui está o trecho de código que faz essa busca:

func RetornaUmaPersonalidade(w http.ResponseWriter, r *http.Request) {
    vars := mux.Vars(r)
    id := vars["id"]
    var personalidade models.Personalidade
    database.DB.First(&personalidade, id)
    json.NewEncoder(w).Encode(personalidade)
}

Nesse trecho, a variável vars é usada para obter o ID fornecido na URL. Em seguida, esse ID é usado na função First do ORM para buscar a personalidade correspondente. Por fim, a personalidade encontrada é codificada em JSON e enviada como resposta.

Se você está tendo problemas com essa parte do código, sugiro verificar se a biblioteca mux está sendo importada corretamente e se o ID está sendo passado corretamente na URL.

Espero ter ajudado e bons estudos!