Python 如何调用 RPC 接口是很多 Python 开发工程师比较关心的问题,本篇文章 好程序员 Python 培训小编就给喜欢 Python 开发的小伙伴们分享一下 Python 调用 RPC 接口的详解,文中有详细的代码列出有很好的参考价值,喜欢的小伙伴就随小编一起来看一下吧,希望对大家有所帮助。
需要安装的python 包如下:
1 、 grpc 安装
pip install grpcio
2 、 grpc 的 python protobuf 相关的编译工具
pip install grpcio-tools
3 、 protobuf 相关 python 依赖库
pip install protobuf
4 、一些常见原型的生成 python 类的集合:
pip install googleapis-common-protos
编译protobuf 文件:使用以下命令生成 Python 代码:
python3 -m grpc_tools.protoc -I< 目标路径目录 > --python_out=. --grpc_python_out=< 目标文件所在目录路径 > < 目标文件 data.proto>
python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. data.proto
注意:protobuf 文件,为定义服务接口代码文件,这里是 data.proto
会生成:data_pb2.py 与 data_pb2_grpc.py
data_pb2.py 是服务接口映射
data_pb2_grpc.py 方法映射
protobuf 内容示例:
syntax = "proto3";
package grpcDemo;
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
service gRPC {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
接口调用内容示例:
# -*- coding: utf-8 -*-
import grpc
import data_pb2,data_pb2_grpc
_HOST = 'localhost'
_PORT = '8080'
def run():
conn = grpc.insecure_channel(_HOST + ':' + _PORT)
client = data_pb2_grpc.gRPCStub(channel=conn)
response = client.SayHello(data_pb2.HelloRequest(name='hello,world!'))
print("received: " + response.text)
if __name__ == '__main__':
run()
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913864/viewspace-2738524/ ,如需转载,请注明出处,否则将追究法律责任。