1 回答
TA贡献1735条经验 获得超5个赞
您可以为 Request 对象定义一个结构,然后将 JSON 解组到其中。
package main
import (
"fmt"
"github.com/gorilla/mux"
"net/http"
"encoding/json"
)
//Request is our request body.
type Request struct {
Groups []int `json:"groups"`
}
//JsonTest1 is the http handler.
func JsonTest1(w http.ResponseWriter, r *http.Request) {
req := new(Request)
//decode request to struct.
if err := json.NewDecoder(r.Body).Decode(&req); err != nil{
w.WriteHeader(400) //bad request
}
w.WriteHeader(200)
b, _ := json.Marshal(req)
w.Write(b)
w.Header().Set("Content-Type", "application/json; charset=utf-8")
}
func main(){
fmt.Printf("starting backend server\n")
root := mux.NewRouter()
root.HandleFunc("/foo", JsonTest1)
webServer := &http.Server{Addr: ":4000", Handler: root}
webServer.ListenAndServe()
}
如果您的主体非常通用,您也可以解组为 map[string]interface{}。
试试
curl -XPOST -d '{"groups": [1]}' http://localhost:4000/foo
- 1 回答
- 0 关注
- 144 浏览
添加回答
举报