1 回答
TA贡献1827条经验 获得超4个赞
render.Bind仅输入,即用于解码请求有效负载。而是用于render.JSON发送 json 响应。
func GetOrderByIdHandler() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
orderId := chi.URLParam(r, "orderId")
order, err := fetchOrder(orderId)
if err != nil {
render.Render(w, r, NewInternalServerError(err))
return
}
log.Info("order status is " + order.Status)
render.JSON(w, r, order)
}
}
或者,您也可以使用标准方法:导入encoding/json包,然后像这样使用它:
func GetOrderByIdHandler() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
orderId := chi.URLParam(r, "orderId")
order, err := fetchOrder(orderId)
if err != nil {
render.Render(w, r, NewInternalServerError(err))
return
}
log.Info("order status is " + order.Status)
w.Header().Set("Content-Type", "application/json")
if err := json.NewEncoder(w).Encode(order); err != nil {
render.Render(w, r, NewInternalServerError(err))
}
}
}
另请注意,多个结构标记的正确格式是“空格分隔”而不是“逗号分隔”。例如:json:"quantity" gorm:"not null"是正确的,而json:"quantity",gorm:"not null"不是。
- 1 回答
- 0 关注
- 105 浏览
添加回答
举报