好程式設計師Python培訓分享Python如何呼叫RPC介面

好程式設計師發表於2020-12-01

   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部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2738524/,如需轉載,請註明出處,否則將追究法律責任。

相關文章