Halo semuanya

Ketika saya mencoba menghasilkan protobuf dengan bidang yang berbeda dalam pesan, entah bagaimana menghasilkan bidang string dalam dokumentasi alih-alih int atau float

Saya akan melampirkan kode profil dan kode struktur.

 service Payment {
     rpc CreateResult(CreateResultRequest) returns(CreateResultResponse){
         option (google.api.http) = {
         post: "/v1/payment/result"
         body: "*"
     };
 }

 message CreateResultRequest {
     string ik_co_id = 1;
     string ik_pw_via = 2;
     string ik_pm_no = 3 ;
     int64 ik_am = 4;
     string ik_cur = 5;
     string ik_desc = 6;
     string ik_sign = 7;
     string ik_co_prs_id = 8;
     string ik_inv_id = 9;
     string ik_inv_st = 10;
     string ik_inv_crt = 11;
     string ik_inv_prc = 12;
     string ik_trn_id = 13;
     int64 ik_co_rfn = 14;
     float ik_ps_price = 15;
 }

enter image description here

enter image description here

2
midaef 12 Mei 2021, 10:39

1 menjawab

Jawaban Terbaik

Berkas int64 dipetakan sebagai string menurut desain(tetapi harus berupa nomor, tentu saja), Anda dapat menemukan detail yang lebih baik di komentar ini di github.

Jadi saya sarankan Anda untuk menggunakan tipe yang berbeda,

Proto3 to JSON Mapping:
int64, uint64 ---> String
float, double ----> number.
1
Matteo 12 Mei 2021, 13:59