2
respostas

API que retornas as Personalidades com problema

Criei minha tabela no Postgre com nome de personalidade, mas quando uso o Find o gorm executa o sql errado.

Minha tabela do Postgre: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Erro que acontece quando chamo a API "/api/personalidades" no browser: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

------Conteúdo arquivo personalidade.go do pacote models

package models

import "react_api/connectDB"

type Personalidade struct {
    Id       int    `json:"id"`
    Nome     string `json:"nome"`
    Historia string `json:"historia"`
}

func GetAllPersonalidades() []Personalidade {
    var p []Personalidade
    connectDB.DB.Find(&p)
    return p
}

-----------Conteúdo arquivo controllers.go do pacote controller

package controllers

import (
    "encoding/json"
    "fmt"
    "net/http"
    "react_api/models"
    "strconv"

    "github.com/gorilla/mux"
)

func Home(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Home Page")
}

func GetAllPersonalidades(w http.ResponseWriter, r *http.Request) {
    p := models.GetAllPersonalidades()
    json.NewEncoder(w).Encode(p)
}

routes.go

package routes

import (
    "log"
    "net/http"
    "react_api/controllers"

    "github.com/gorilla/mux"
)

func HandleRequest() {
    r := mux.NewRouter()
    r.HandleFunc("/", controllers.Home)
    r.HandleFunc("/api/personalidades", controllers.GetAllPersonalidades).Methods("GET")
    r.HandleFunc("/api/personalidade/{id}", controllers.GetPersonalidade).Methods("GET")
    log.Fatal(http.ListenAndServe(":8000", r))
}
2 respostas

Olá. Como padrão a maioria dos ORMs (Object Relational Mapper) entendem que a tabela no banco é a pluralização dos models, sugiro que crie a tabela no plural ou se quiser na documentação do Gorm tem as instruções para vc definir o nome da tabela que deseja usar. Bons estudos.

Dê uma olhada no link da doc do GORM https://gorm.io/docs/conventions.html!

Obrigado Matheus, vou olhar isto!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software