概要 Goa v1 では、コントローラーのコンテキストに http.Request がまるっと入っていたので、 コントローラー内でリクエストを見たり、ログに出したり簡単にできたのですが、v3 では、gRPC との絡みもあるので、コントローラー(サービスメソッド)で取れるのは、基本的にはコンテキストとデザインで指定したペイロードだけです。 HTTPのAPIを書いているとどうしても v3 でも元の http.Request が欲しくなったりします。 どう解決するか? どう解決するのが一番よいのかよく分からないところもありますが、コンテキストに http.Requset を含めるミドルウェアを書いて解決してみました。 github.com リクエストをコンテキストに含める リクエストをいったん全部読み出して Payload を記録しておきます。 読み出してしまったリクエストにはまた読み出せるよう