以下の内容はhttps://tech-up.hatenablog.com/entry/2019/11/25/111528より取得しました。


POSTなどの際、JSONの形式をチェックしつつも、bodyの指定は任意とする方法【Go】

POSTでbodyの入力を任意としたいけど、JSONの形式がちゃんとあっているかエラーハンドリングしたい場合。

func decodeJSON(r *http.Request, dst interface{}) error {
    dec := json.NewDecoder(r.Body)
    return dec.Decode(dst)
}

create(w http.ResponseWriter, r *http.Request) {
  if err := decodeJSON(r, &param); err != nil && err != io.EOF {
      // エラーハンドリング
        return
    }
  // 何かしらの処理
}


ポイントは、decodeJSONが返す、JSON形式のエラーチェックの他に、io.EOFのエラーでないことをチェックしている点です。

io.EOFは、内容の終端でないかをチェックするものですが、このエラーの場合、bodyが指定されていないことになります。
そのエラーではないことを確認することで、bodyの指定を任意とすることができるのです。





以上の内容はhttps://tech-up.hatenablog.com/entry/2019/11/25/111528より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14