「google/protobuf/struct.proto」は GRPC 経由で動的 JSON を送信するための最適な方法ですか?
背景:
GRPC サーバーとクライアントを実装しました(両方とも Go で)、「golang/protobuf/struct」を使用することが動的 JSON データを配信するための最も効率的な戦略であるかどうかについてのガイダンスを求めています。
解決策:
提供された「User.proto」ファイルに基づいて、「google.protobuf.Struct」を利用するとサウンドが現れるようです
代替解決策:
1. カスタム Protobuf 構造体**
proto ファイル内の構造体として「Details」を定義することが提案されていますが、このアプローチには追加のコード生成とメンテナンスが必要であり、面倒になる可能性があります。
2. JSON 変換とカプセル化
GRPC 送信の前は、「詳細」マップを JSON 形式に変換し、protobuf メッセージとしてカプセル化し、サーバー側で逆シリアル化するという別のオプションがありました。ただし、これには追加の処理が必要であり、事前に構築された "Struct" 型を使用するよりも効率が低くなります。
Anuj の解決策:
この解決策は機能しますが、いくぶん複雑で、次のものが含まれます。手動の JSON シリアル化と逆シリアル化。
Luke の解決策:
この代替案は簡潔ですが、複数の形式で地図データを移行する必要以上の変換が必要です。
最適なアプローチ:
Go で導入された「structpb」パッケージを活用したソリューションにより、protobuf「Struct」の作成が簡素化されます。標準の Go マップからのインスタンス。このメソッドには次の利点があります。
このアプローチは、client.go ファイルで提供される例と一致しており、「structpb.NewStruct」関数を使用してマップから「Struct」が直接インスタンス化されます。
以上がGo で gRPC 経由で動的 JSON データを送信する最も効率的な方法は「google.protobuf.Struct」ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。