我构建了一个 echo 微服务 api,有两个路由:post 和 get。
get 方法工作正常,但 get 方法无法解析 JSON,这意味着 Bind() 函数后结构为空。
这一定是我想念的一个非常愚蠢和微小的东西......有什么帮助吗?
// 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 是正确的路线,在正文> 原始> JSON 格式下,我按预期发送 JSON )我收到返回状态 200 ok,但 json 为空,而我希望收到电子邮件属性。
知道为什么 Bind() 没有正确提取字段吗?