Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Acho que fiz tudo certinho, mas os dados dos alunos não abrem no postman, já rodei o main.go no terminal

func CriaNovoAluno(c *gin.Context) {
    var aluno models.Aluno
    if err := c.ShouldBindJSON(&aluno); err != nil {
        c.JSON(http.StatusBadRequest, gin.H{
            "error": err.Error()})
        return
    }
    if err := models.ValidaDadosDeAluno(&aluno); err != nil {
        c.JSON(http.StatusBadRequest, gin.H{
            "error": err.Error()})
        return
    }
    database.DB.Create(&aluno)
    c.JSON(http.StatusOK, aluno)
}

func BuscaAlunoPorID(c *gin.Context) {
    var aluno models.Aluno
    id := c.Params.ByName("id")
    database.DB.First(&aluno, id)

    if aluno.ID == 0 {
        c.JSON(http.StatusNotFound, gin.H{
            "Not found": "Aluno não encontrado"})
        return
    }

    c.JSON(http.StatusOK, aluno)
}

func DeletaAluno(c *gin.Context) {
    var aluno models.Aluno
    id := c.Params.ByName("id")
    database.DB.Delete(&aluno, id)
    c.JSON(http.StatusOK, gin.H{"data": "Aluno deletado com sucesso"})
}

func EditaAluno(c *gin.Context) {
    var aluno models.Aluno
    id := c.Params.ByName("id")
    database.DB.First(&aluno, id)
    if err := c.ShouldBindJSON(&aluno); err != nil {
        c.JSON(http.StatusBadRequest, gin.H{
            "error": err.Error()})
        return
    }
    if err := models.ValidaDadosDeAluno(&aluno); err != nil {
        c.JSON(http.StatusBadRequest, gin.H{
            "error": err.Error()})
        return
    }
    database.DB.Model(&aluno).UpdateColumns(aluno)
    c.JSON(http.StatusOK, aluno)
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Oi, Mariana! Tudo bem? Espero que sim!

Analisando o código que você compartilhou, exclusivamente o método CriaNovoAluno, o mesmo não apresenta nenhum problema ou inconsistência que poderia causar tal situação.

Contudo, analisando o arquivo "alunos.go" (isso do projeto inicial do curso), que está dentro da pasta "models", pude notar que ele não apresenta nenhuma restrição ou validação do dado que você está passando para o banco de dados.

Porém, essa é a forma que esse arquivo estava até antes do fim da aula anterior da que você fez esse tópico. Então, é possível que você tenha feito outras requisições antes de alterar o arquivo, por isso, aparecem esses dados vazios. A título de curiosidade, o arquivo "alunos.go" deve estar assim:

package models

import (
    "gopkg.in/validator.v2"
    "gorm.io/gorm"
)

type Aluno struct {
    gorm.Model
    Nome string `json:"nome" validate:"nonzero"`
    RG   string `json:"rg" validate:"len=9, regexp=^[0-9]*$"`
    CPF  string `json:"cpf" validate:"len=11, regexp=^[0-9]*$"`
}

func ValidaDadosDeAluno(aluno *Aluno) error {
    if err := validator.Validate(aluno); err != nil {
        return err
    }
    return nil
}

Portanto, de maneira resumida, não há nenhum problema no seu código, tente fazer outras postagens de dados, e verifique se no seu arquivo "alunos.go" esta como mostrei acima.

Espero ter ajudado e bons estudos!

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

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