我构建了一个 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() 没有正确提取字段吗?
1 回答
慕后森
TA贡献1802条经验 获得超5个赞
您应该通过将每个首字母大写来导出凭证结构的字段,否则 json-package 不知道您有哪些字段:
type credentials struct { Email string `json:"email"` Pass string `json:"pass"`}
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消