我构建了一个 echo 微服务 api,有两个路由:post 和 get。
get 方法工作正常,但 get 方法无法解析 JSON,这意味着在 Bind() func 之后结构为空。
这一定是我想念的一件非常愚蠢和微小的事情......有什么帮助吗?
// main.go
//--------------------------------------------------------------------
func main() {
e := echo.New()
e.GET("/getmethod", func(c echo.Context) error { return c.JSON(200, "good")})
e.POST("/login", handlers.HandleLogin)
e.Start("localhost:8000")
}
// handlers/login.go
//--------------------------------------------------------------------
type credentials struct {
email string `json:"email"`
pass string `json:"pass"`
}
//--------------------------------------------------------------------
func HandleLogin(c echo.Context) error {
var creds credentials
err := c.Bind(&creds)
if err != nil {
return c.JSON(http.StatusBadRequest, err) // 400
}
return c.JSON(http.StatusOK, creds.email) // 200
}
当使用邮递员运行发布请求时(确保:发布方法,url 是正确的路由,在 body> raw> JSON 格式下,我按预期发送 JSON)我收到返回状态 200 ok,但 json 为空,而我希望收到电子邮件属性。
知道为什么 Bind() 没有正确提取字段吗?
慕后森
相关分类