为了账号安全,请及时绑定邮箱和手机立即绑定

{已修复} Golang RESTAPI 返回错误数据

{已修复} Golang RESTAPI 返回错误数据

Go
叮当猫咪 2022-12-26 16:47:17
当我使用调试器时,metricId返回具有所有值的度量对象0 or null(与输出相同)。我在这里做错了什么?The Database connection works.func GetMetricById(c *gin.Context) {    metricId := c.Param("id")    conn := config.DatabaseConnect()    var obj models.Metric    rows := conn.QueryRow("SELECT * FROM Metric WHERE id = ?", metricId)    err := rows.Scan(&obj.Id, &obj.Sms, &obj.Absence, &obj.Pregnant, &obj.Uwv_notifications, &obj.Wia_dossiers_started, &obj.Employees, &obj.Data_id, &obj.Date, &obj.Type)    if err != nil {        fmt.Println(err.Error())    }    fmt.Println(obj, "Metric Object that is called.")    c.JSON(http.StatusOK, obj)}输出:{    "Id": 0,    "Sms": 0,    "Absence": 0,    "Pregnant": 0,    "Uwv_notifications": 0,    "Wia_dossiers_started": 0,    "Employees": 0,    "Data_id": 0,    "Date": "",    "Type": 0}
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

func GetMetricsByDataId(c *gin.Context) {

    queryParams := c.Request.URL.Query()

    

    conn := config.DatabaseConnect()

    var metrObject []models.Metric


    rows, _ := conn.Query("SELECT * FROM Metric WHERE data_id = ?", queryParams.Get("data_id"))


    defer rows.Next()


    for rows.Next() {

        var obj models.Metric

        if err := rows.Scan(&obj.Id, &obj.Sms, &obj.Absence, &obj.Pregnant, &obj.Uwv_notifications, &obj.Wia_dossiers_started, &obj.Employees, &obj.Data_id, &obj.Date, &obj.Type); err != nil {

            _ = fmt.Errorf(err.Error())

        }

        metrObject = append(metrObject, obj)

    }

    if err := rows.Err(); err != nil {

        _ = fmt.Errorf(err.Error())

    }


    c.JSON(http.StatusOK, metrObject)

}

像这样它有效


localhost:8082/billing/getmetricbydataid?data_id=150295


通过此 API 调用


查看完整回答
反对 回复 2022-12-26
?
浮云间

TA贡献1829条经验 获得超4个赞

我认为解决方案可能是使用metricId := c.Params.ByName("id")而不是metricId := c.Param("id")



查看完整回答
反对 回复 2022-12-26
  • 2 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信