「google/protobuf/struct.proto」は GRPC 経由で動的 JSON を送信するための最適な方法ですか?
google/protobuf/struct の使用.proto は、動的 JSON オブジェクトを送信する効果的な方法です。 GRPC.
google/protobuf/struct の使用
google/protobuf/struct.proto は、Protobuf メッセージで JSON オブジェクトを表すための汎用データ構造を提供します。これには 2 つの主要なメッセージ タイプが含まれます。
動的JSON
動的 JSON は、文字列として保存された非構造化データまたは柔軟なデータを指します。データが事前定義されたスキーマに従っている場合は、カスタム Protobuf メッセージ タイプを定義する方が効率的である可能性があります。
Proto File
Proto ファイル (User.proto) は google/ を使用します。 protobuf/struct.proto を使用して SendJsonRequest メッセージを宣言します。詳細フィールドは Struct 型で、動的な JSON データを渡すことができます。
クライアント コード
クライアント コードは、structpb のインスタンスを作成します。structpb を使用して Struct .NewStruct()、map[string]interface{} を Struct に変換します。 object.
代替ソリューション
Anuj のソリューション
このソリューションはより複雑で、各マップ エントリを手動でオブジェクトに変換する必要があります。 structpb.Value、より多くのコードが必要
Luke の解決策
より簡潔ですが、この解決策にはマップからバイトへの変換、そして structpb.Struct への変換が含まれます。
別のアプローチからの解決策
提案された解決策では次のようになります。 structpb.NewStruct() を使用すると、マップから Struct オブジェクトを直接作成できるため、中間変換の必要がなくなります。
結論
google/protobuf/struct.proto を使用すると、次のことができます。非構造化データまたは柔軟なデータを扱う場合に、GRPC 経由で動的 JSON を送信するのに適したオプションです。ただし、データが特定のスキーマに従っている場合は、カスタム Protobuf メッセージを定義すると効率と型安全性が向上する可能性があります。
以上が「google/protobuf/struct.proto」は gRPC 経由で動的 JSON データを送信する最良の方法ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。