goa の API サーバに 1GB を超える HTTP リクエストを送信すると、http: request body too large のようなエラーが発生します。 これは net/http の MaxBytesReader が返すエラーですが、 その設定をどこで行っているのか見つけるのに少し苦労したのでメモしておきます。

goa 1.3.1 では、https://github.com/goadesign/goa/blob/v1/service.go#L55-L57 に HTTP リクエストボディサイズに関する記述があります。 MaxRequestBodyLength という変数があるので、これを変更すれば OK です。 デフォルトでは 1GB までとなっているので、 2GB にした場合は main 関数内に以下のように書きます。

service := goa.New("test-api")
t := NewTestController(service)
t.MaxRequestBodyLength = int64(2 * 1024 * 1024 * 1024)

service.go のコメントにも書いてあるとおり、 MaxRequestBodyLength = 0 にすればリクエストサイズの制限はなくなります。