猿问

邮递员中未显示 Golang Rest api 数据

我面临一个问题,我在 Go 中制作了一个 api,一切正常,但我没有在邮递员中获取数据。当我在日志中打印数据时,我正在正确获取数据,但它在邮递员中显示空白数据。


authorizeModel.go


func GetSkillList() map[string]interface{} {

    db := GetDB()

    var (

        // id        int

        skillName string

    )

    type SkillList struct {

        name string

    }

    skillList := SkillList{}

    skillArr := []SkillList{}


    rows, err := db.Query("select DISTINCT(name) as name from skills where company_id IN ('2') and name != 'Skill Needed' order by name")

    if err != nil {

        log.Fatal(err)

    }

    defer rows.Close()

    for rows.Next() {

        err := rows.Scan(&skillName)

        if err != nil {

            log.Fatal(err)

        }

        skillList.name = skillName

        skillArr = append(skillArr, skillList)

    }

    response := u.Message(true, "Skill list retrieved successfully")

    response["data"] = skillArr

    log.Println(skillArr)

    response["authorization"] = false

    return response

}

authController.go


var SkillTagList = func(w http.ResponseWriter, r *http.Request) {


    resp := models.GetSkillList()

    u.Respond(w, resp)

}

路线.go


router.HandleFunc("/api/v1/authorize/skillTagList", controllers.SkillTagList).Methods("POST")

如果你看到 authorizeModel.go 我已经在日志中打印了我的数据,我在日志中成功获取了该数据。但是请看下面的邮递员截图。

慕斯王
浏览 118回答 1
1回答

斯蒂芬大帝

你必须重命名name为Name我不确定是什么u.Respond(),所以我假设它是您正在使用的某个框架的辅助函数,并且我假设u.Respond()它在内部使用 json.Marshal。如果您的结构有未导出的字段(在您的情况下,字段名称以小写字母开头name),则json.Marshal无法访问这些字段,结果将没有name字段。这就是您在 JSON 中获取空对象的原因。
随时随地看视频慕课网APP

相关分类

Go
我要回答