Rumah >pembangunan bahagian belakang >Golang >Adakah `google.protobuf.Struct` Cara Paling Cekap untuk Menghantar Data JSON Dinamik melalui gRPC dalam Go?
Adakah "google/protobuf/struct.proto" Kaedah Optimum untuk Menghantar Dynamic JSON melalui GRPC?
Latar Belakang:
Anda telah melaksanakan pelayan dan pelanggan GRPC (kedua-duanya dalam Go) dan sedang mencari panduan sama ada menggunakan "golang/protobuf/struct" ialah strategi paling cekap untuk menyampaikan data JSON dinamik.
Penyelesaian:
Berdasarkan " yang disediakan " Fail User.proto", menggunakan "google.protobuf.Struct" kelihatan seperti bunyi pendekatan.
Penyelesaian Alternatif:
1. Struktur Protobuf Tersuai**
Mentakrifkan "Butiran" sebagai struct dalam fail proto telah dicadangkan, tetapi pendekatan ini memerlukan penjanaan dan penyelenggaraan kod tambahan, yang boleh menyusahkan.
2. Penukaran dan Enkapsulasi JSON
Sebelum penghantaran GRPC, menukar peta "Butiran" kepada format JSON, merangkumnya sebagai mesej protobuf dan menyahsirinya pada bahagian pelayan ialah pilihan lain. Walau bagaimanapun, ini melibatkan pemprosesan tambahan dan kurang cekap berbanding menggunakan jenis "Struct" prabina.
Penyelesaian Anuj:
Walaupun berfungsi, penyelesaian ini agak rumit dan merangkumi pensirilan JSON manual dan penyahsirilan.
Luke's Penyelesaian:
Alternatif ini ringkas namun masih memerlukan lebih banyak transformasi daripada yang diperlukan, peralihan data peta melalui pelbagai format.
Pendekatan Optimum:
Penyelesaian yang memanfaatkan pakej "structpb" yang diperkenalkan dalam Go memudahkan penciptaan protobuf "Struct" contoh daripada peta Go standard. Kaedah ini memberikan faedah berikut:
Pendekatan ini sejajar dengan contoh yang disediakan dalam fail client.go anda, yang mana "Struct" dibuat secara langsung daripada peta menggunakan fungsi "structpb.NewStruct".
Atas ialah kandungan terperinci Adakah `google.protobuf.Struct` Cara Paling Cekap untuk Menghantar Data JSON Dinamik melalui gRPC dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!