无法从邮递员中的“获取网址”获取对象ID

时间:2018-08-23 04:50:48

标签: go get postman mgo gin

似乎我的网址不匹配,因为它显示404错误,我也尝试同时更改邮递员和我的代码的网址,还尝试进行对象ID转换以查看404是否是由这个原因引起的。下面是我的代码。

func main() {
    r := gin.Default()
    r.GET("/get-custone/:_id", getDetailone)
    r.Run()
} 
func getDetailone(c *gin.Context) {
    session := connect()
    defer session.Close()
    col := session.DB("test").C("cust")
    var results Person
    idstring:=c.Param("_id")
    oid:=bson.ObjectId(idstring)
    err := col.Find(bson.M{"_id":oid}).One(&results)
    if err != nil {
        panic(err)
    }
    c.JSON(200, gin.H{
        "message": "success",
    })
}

这是邮递员的截图

enter image description here

1 个答案:

答案 0 :(得分:0)

在Postman中,您正在尝试将_id作为查询字符串传递,而您正在等待代码中的path参数。

您要做的是:

curl -X GET http://localhost:8080/get-custone/5b7d...

如果您更喜欢使用查询字符串参数,则应该做类似的事情(我没有测试代码):

func main() {
    r := gin.Default()
    r.GET("/get-custone", getDetailone)
    r.Run()
} 
func getDetailone(c *gin.Context) {
    session := connect()
    defer session.Close()
    col := session.DB("test").C("cust")
    var results Person
    idstring:= c.Query("_id")
    oid:=bson.ObjectId(idstring)
    err := col.Find(bson.M{"_id":oid}).One(&results)
    if err != nil {
        panic(err)
    }
    c.JSON(200, gin.H{
        "message": "success",
    })
}