簡介
Fast-GRPC 旨在幫助開發者更加輕松快捷地使用 Python 開發 gRPC 介面,它的特點包括簡化步驟、簡單上手、快速開發,同時支持異步和同步代碼,以及支持 middleware,靈感來自FastAPI,
安裝
需要python 3.7+
pip install python-fast-grpc
快速上手
下面是一個簡單的 Fast-GRPC 示例,展示如何創建一個 gRPC 服務
from fast_grpc import BaseSchema, FastGRPC
# 創建 FastGRPC 實體并定義服務名
rpc = FastGRPC("Greeter")
class HelloRequest(BaseSchema):
name: str
class HelloReply(BaseSchema):
message: str
# 添加 gRPC 方法,使用 add_method 裝飾器,指定請求和回應的模型類
@rpc.add_method("SayHello", request_model=HelloRequest, response_model=HelloReply)
async def say_hello(request: HelloRequest) -> HelloReply:
return HelloReply(message=f"Hello {request.name}")
# 啟動 gRPC 服務,無需手動撰寫 proto 檔案,Fast-GRPC 會根據你的 Python 代碼自動生成 proto 檔案,并編譯為 Python gRPC 代碼,最后啟動 gRPC 服務
rpc.run()
在上面的示例中,我們首先使用 FastGRPC 創建了一個 gRPC 服務,接下來,我們定義了兩個資料模型 HelloRequest 和 HelloReply,并使用 add_method 方法將 SayHello 介面添加到 gRPC 服務中,
add_method 方法接受三個引數:rpc方法名、請求模型和回應模型,這里 say_hello 函式可以支持同步和異步代碼,同步代碼使用執行緒模擬異步來執行,
最后,我們通過 run 方法啟動 gRPC 服務器,Fast-GRPC 會自動根據 Python 代碼的介面定義生成 .proto 檔案和 Python gRPC 代碼,從而大大簡化了開發程序,
最后我們用呼叫客戶端來看看效果
import grpc
import greeter_pb2 as pb2
import greeter_pb2_grpc as pb2_grpc
channel = grpc.insecure_channel("127.0.0.1:50051")
stub = pb2_grpc.GreeterStub(channel)
response = stub.SayHello(pb2.HelloRequest(name="fastGRPC"))
print("Greeter client received: ", response)
相關鏈接
Fast-GRPC GitHub 倉庫
下一步計劃
目前,Fast-GRPC 支持的功能還比較簡單,未來將繼續改進和完善,如果您有任何建議或意見,請不要猶豫,歡迎提交 issue 或者 PR,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/552207.html
標籤:其他
下一篇:返回列表
