Slide 13
              Slide 13 text
              
                  ©2018 Wantedly, Inc.
// Boilerplate code for JSON API server in net/http
// ちょっとした誇張表現がはいっているかも
func CreateBook(w http.ResponseWriter, r *http.Request) {
data, err := ioutil.ReadAll(r)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
req := &CreateBookRequest{}
if err = json.Unmarshal(data, book); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// ここが本当に実現したいロジック
w.WriteHeader(http.StatusCreated)
if err := json.NewEncoder(w).Encode(book); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
(PͷͭΒ͞
Boilerplate in net/http
FH$36%ͷ$ʢ$SFBUFʣͷ࣮XJUInet/http
 IUUQ3FRVFTU͔ΒCPEZಡΈग़͠
 ΤϥʔϋϯυϦϯά
 CPEZΛTUSVDUʹVONBSTIBM
 ΤϥʔϋϯυϦϯά
 ຊʹ࣮ݱ͍ͨ͠ϩδοΫΛॻ͘
 ΤϥʔϋϯυϦϯά
 +40/ʹNBSTIBMͯ͠SFTQPOTFʹॻ͘
 ΤϥʔϋϯυϦϯά