我不知道这个问题是否有任何意义,但我想知道是否有任何方法可以得到用http.ResponseWriter
表示的数据.我需要它来记录日志(log).
我已经在围棋中编写了一个API.
func api1(w http.ResponseWriter, req *http.Request) {
var requestData MyStruct
err := json.NewDecoder(req.Body).Decode(&requestData)
if err != nil {
writeError(w, "JSON request is not in correct format")
return
}
log.Println(" Request Data :", req.Body) // I am logging req
result, err := compute() // getting result from a function
if err != nil {
errRes := ErrorResponse{"ERROR", err}
response, er = json.Marshal(errRes) // getting error response
} else {
response, er = json.Marshal(result)
}
if er != nil {
http.Error(w, er.Error(), 500) // writing error
return
}
io.WriteString(w, string(response)) // writing response
}
目标是创建包含请求和响应数据的单个日志(log).响应可以是错误响应,也可以是已处理的响应.
我在想,如果我能得到写在http上的数据.然后,我可以创建一个有意义的日志(log).
这个是可能的吗?如果没有,请建议我如何实现这一点.