zoukankan      html  css  js  c++  java
  • python 使用 grpc

    1、编辑 proto 文件

    syntax = "proto3";
    
    package proto;
    
    service GeekAuth {
        // 获取目标权限树
        rpc Tree(TreeReq) returns (TreeRsp){};
    }
    
    // 获取目标权限树 请求参数
    message TreeReq {
        string appKey = 1;                // 字符串类型,参数名为 appKey
        string secretKey = 2;
        int64 target  = 3;                  //  整型,参数名为 target
        repeated int64 authId = 4;    // 数组类型,数组内元素类型为整型
    }    
    
    // 获取目标权限树 返回内容 
    message TreeRsp {
        int64 code = 1;
        string message = 2;
        string data = 3;            //  data 为 json 字符串
    }
    demo.proto

    2、编译 proto 文件

    python -m grpc_tools.protoc --python_out=. --grpc_python_out=. -I. demo.proto
    
    # 编译后会在当前目录下生成两个文件:demo_pb2.py, demo_pb2_grpc.py

    3、使用

    import grpc
    from . import demo_pb2, demo_pb2_grpc


    channel = grpc.insecure_channel("127.0.0.1:9999") stub = demo_pb2_grpc.GeekAuthStub(channel) # 注意:当 proto 文件中规定参数类型是 string 时,在python代码使用时需要对参数进行编码 response = stub.Tree(demo_pb2.TreeReq(appKey=AppKey.encode(), secretKey=SecretKey.encode(), target=user_data.u_id))
    data = json.loads(response.data)
  • 相关阅读:
    中风后遗症
    慢性湿疹半年
    女子脚背痒肿案
    肾盂肾炎病案
    鼻衄二则
    糖尿病病案
    慢性肠炎2例
    子宫肌瘤病案2例
    眩晕病案
    前列腺炎病案3例
  • 原文地址:https://www.cnblogs.com/hsmwlyl/p/13530495.html
Copyright © 2011-2022 走看看