http.go
func HTTPUnmarshalRequestBodyJSON(request *http.Request, result interface{}) error {
	defer request.Body.Close()
	body, err := ioutil.ReadAll(request.Body)
	if err != nil {
		return err
	}
	return json.Unmarshal(body, result)
}
func HTTPUnmarshalRequestBodyJSON(request *http.Request, result interface{}) error {
	defer request.Body.Close()
	body, err := ioutil.ReadAll(request.Body)
	if err != nil {
		return err
	}
	return json.Unmarshal(body, result)
}
// HTTPUnmarshalRequestBodyJSON reads a http.Request body and unmarshals it as JSON to result.