このプロジェクトについて
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エンコードされたスラッシュのアンエスケープモードについても言及しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.