【问题标题】:Why grpc-gateway generate string fields instead of int or float?为什么 grpc-gateway 生成字符串字段而不是 int 或 float?
【发布时间】:2021-05-12 07:39:10
【问题描述】:

大家好

当我尝试在消息中生成具有不同字段的 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;
 }

【问题讨论】:

    标签: json go swagger grpc grpc-gateway


    【解决方案1】:

    int64 字段映射为string by design(当然应该是一个数字),你可以在 github 上的this comment 找到更详细的信息。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 2019-11-16
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多