为什么 grpc-gateway 生成字符串字段而不是 int 或 float?

Why grpc-gateway generate string fields instead of int or float?

大家好

当我尝试使用消息中的不同字段生成 protobuf 时,它以某种方式在文档中生成字符串字段而不是 int 或 float

我会附上原型代码和结构代码。

 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;
 }

int64 字段在 github 上映射为 string by design (but should be a number, of course), you can find better details in this comment

所以我建议你使用不同的类型,

Proto3 to JSON Mapping:
int64, uint64 ---> String
float, double ----> number.