grpc-transcode

    • : .proto 文件的内容

    添加proto

    路径中最后的数字,会被用作 proto 的 id 做唯一标识,比如下面示例的 proto id1

    在指定 route 中,代理 grpc 服务接口:

    • 注意: 这个 route 对应的 upstream 的属性 scheme 必须设置为 grpc
    • 代理 grpc 服务例子可参考:
    1. curl http://127.0.0.1:9080/apisix/admin/routes/111 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{ "methods": ["GET"], "uri": "/grpctest", "plugins": { "grpc-transcode": { "proto_id": "1", "service": "helloworld.Greeter", "method": "SayHello" } }, "upstream": { "scheme": "grpc", "type": "roundrobin", "nodes": { "127.0.0.1:50051": 1 } }}'

    测试

    访问上面配置的 route:

    在指定 route 中,代理 grpc 服务接口:

    • 枚举类型

      • enum_as_name
      • enum_as_value
    • 64位整型

      • int64_as_number
      • int64_as_string
      • auto_default_values
      • no_default_values
      • use_default_values
      • use_default_metatable
    • Hooks开关

      • enable_hooks
      • disable_hooks

    测试 pb_option 参数

    访问上面配置的 route:

    "workflowKey":"#2251799813685260" 表示已成功。

    1. curl http://127.0.0.1:9080/apisix/admin/routes/111 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{ "uri": "/grpctest", "plugins": {}, "upstream": { "scheme": "grpc", "type": "roundrobin", "nodes": { "127.0.0.1:50051": 1 } }}'