无法将帖子正文绑定到Go中的URL
我正试图通过访问我使用Echo提供的POST请求,对pokemon API进行一个简单的API调用 我正在向“localhost:8000/pokemon”发送一个POST请求,其中的主体无法将帖子正文绑定到Go中的URL,go,post,bind,Go,Post,Bind,我正试图通过访问我使用Echo提供的POST请求,对pokemon API进行一个简单的API调用 我正在向“localhost:8000/pokemon”发送一个POST请求,其中的主体{“pokemon”:“pikachu”}通过ioutil将主体重新连接到请求,并更改主体的请求:“localhost:8000/pokemon/pikachu” POST请求通过使用一些JSON进行响应来工作,但所做的调用仅限于“localhost:8000/pokemon”,而且似乎没有将主体添加到URL中
{“pokemon”:“pikachu”}
通过ioutil将主体重新连接到请求,并更改主体的请求:“localhost:8000/pokemon/pikachu”
POST请求通过使用一些JSON进行响应来工作,但所做的调用仅限于“localhost:8000/pokemon”,而且似乎没有将主体添加到URL中
我认为这里的绑定有问题u:=new(pokemon)
有人有什么想法吗
func main() {
e := echo.New() // Middleware
e.Use(middleware.Logger()) // Logger
e.Use(middleware.Recover())
//CORS
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
AllowOrigins: []string{"*"},
AllowMethods: []string{echo.GET, echo.HEAD, echo.PUT, echo.PATCH, echo.POST, echo.DELETE},
}))
// Root route => handler
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!\n")
})
e.POST("/pokemon", controllers.GrabPrice) // Price endpoint
// Server
e.Logger.Fatal(e.Start(":8000"))
}
添加到@mkopriva和@A.Lorefice已经回答的内容 是的,您需要确保导出变量,以便绑定正常工作。 因为底层绑定过程实际上是在结构上使用反射机制。请参阅文档,滚动到Structs部分以查看它是什么
type pokemon struct {
Pokemon string `json:"pokemon" form:"pokemon" query:"pokemon"`
}
您需要导出字段。i、 e.
键入pokemon struct{pokemon string…}
如@mkopriva所述,如果您的结构没有导出字段,绑定引擎将无法访问这些字段以将其标记与正文中的标记相匹配,因此无法进行绑定。在某些IDE中,如果将结构与未报告的字段一起使用,则会显示警告或错误。
type pokemon struct {
Pokemon string `json:"pokemon" form:"pokemon" query:"pokemon"`
}