HTTP ミドルウェア ハンドラーでのリクエスト本文の再利用性の決定
このシナリオでは、Go 内の別のメソッド内でメソッドを再利用しようとすると問題が発生します。 -chi HTTP ルーター。外部ハンドラー Registration() は、ioutil.ReadAll(r.Body) を使用してリクエスト本文を読み取り、内部ハンドラー Create() が JSON を解析できるデータを残しません。
: リクエストボディの復元
この問題を解決するには、次の手順を実装します。修正:
func Registration(w http.ResponseWriter, r *http.Request) { b, err := io.ReadAll(r.Body) // ...other code r.Body = io.NopCloser(bytes.NewReader(b)) user.Create(w, r) }
このコードが問題を解決する方法は次のとおりです:
このようにして、内部ハンドラーは、「JSON 入力の予期しない終了」エラーが発生することなく、リクエスト本文から JSON データにアクセスできます。
以上がGo-chi HTTP ミドルウェア ハンドラーでリクエスト ボディを再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。