Slide 20
Slide 20 text
Dealing with data
// Respond helper
func (s *server) respond(w http.ResponseWriter, r *http.Request, data interface{}, status int) {
w.WriteHeader(status)
if data != nil {
err := json.NewEncoder(w).Encode(data)
// TODO: handle error
}
}
// Decoding helper
func (s *server) decode(w http.ResponseWriter, r *http.Request, v interface{}) error {
return json.NewDecoder(r.Body).Decode(v)
}
抽象化する
後から Accept
ヘッダーや Content-Type
ヘッダーに対応することが容易に
ヘルパーは http.ResponseWriter
と *http.Request
を引数で受け取る