このプロジェクトについて

gRPC-Gatewayは、Google protocol buffersコンパイラ(protoc)のプラグインです。protobufのサービス定義を読み取り、サービス定義内のgoogle.api.httpアノテーションに基づいて、RESTful HTTP APIをgRPCに変換するリバースプロキシサーバーを生成します。これにより、1つのサービスをgRPCとRESTful JSONの両方のスタイルで同時に公開できます。 READMEに記載されている主な機能: - proto定義からJSON APIハンドラーとリバースプロキシを生成します。 - リクエストボディ、パス、クエリ文字列内のメソッドパラメータをサポートします。 - パスパラメータ内のenumフィールド(repeated enumフィールドを含む)を処理します。 - ストリーミングAPIを改行区切りJSONにマッピングします。 - 3つのマッピング方法: デフォルトのHTTPマッピング(generate_unbound_methodsを使用)、カスタムgoogle.api.httpアノテーション、または外部のgRPC Service Configurationファイル(オプションでstandalone=trueを指定)。 - protoc-gen-openapiv2によるオプションのOpenAPI/Swagger生成、およびOpenAPI 3.1出力用のアルファ版protoc-gen-openapiv3。 - go install、Go 1.24のtoolディレクティブ、またはSLSA3署名付きのビルド済みリリースバイナリによるインストール。 - buf(ローカルまたはリモートプラグイン)またはprotocでの使用、およびbuf.gen.yaml設定例。 - gRPCサーバーエンドポイントにプロキシするHTTPエントリポイントを記述するためのランタイムライブラリ(runtime.NewServeMux)。 - ドキュメントサイト、examplesディレクトリ、GopherCon UK 2019のビデオ入門。 READMEでは、protoc-gen-openapiv3はアルファ版であり出力形式が変更される可能性がある一方、protoc-gen-openapiv2が本番環境で安定した選択肢であると述べています。また、重複マッピングに対するパスパラメータの名前変更や、URLエンコードされたスラッシュのアンエスケープモードについても言及しています。