翼度科技»论坛 编程开发 python 查看内容

Fast-GRPC: 用python轻松开发grpc接口

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
简介

Fast-GRPC 旨在帮助开发者更加轻松快捷地使用 Python 开发 gRPC 接口。它的特点包括简化步骤、简单上手、快速开发,同时支持异步和同步代码,以及支持 middleware,灵感来自FastAPI。
安装

需要python 3.7+
  1. pip install python-fast-grpc
复制代码
快速上手

下面是一个简单的 Fast-GRPC 示例,展示如何创建一个 gRPC 服务
  1. from fast_grpc import BaseSchema, FastGRPC
  2. # 创建 FastGRPC 实例并定义服务名
  3. rpc = FastGRPC("Greeter")
  4. class HelloRequest(BaseSchema):
  5.     name: str
  6. class HelloReply(BaseSchema):
  7.     message: str
  8. # 添加 gRPC 方法,使用 add_method 装饰器,指定请求和响应的模型类
  9. @rpc.add_method("SayHello", request_model=HelloRequest, response_model=HelloReply)
  10. async def say_hello(request: HelloRequest) -> HelloReply:
  11.     return HelloReply(message=f"Hello {request.name}")
  12. # 启动 gRPC 服务。无需手动编写 proto 文件,Fast-GRPC 会根据你的 Python 代码自动生成 proto 文件,并编译为 Python gRPC 代码,最后启动 gRPC 服务
  13. rpc.run()
复制代码
在上面的示例中,我们首先使用 FastGRPC 创建了一个 gRPC 服务。接下来,我们定义了两个数据模型 HelloRequest 和 HelloReply,并使用 add_method 方法将 SayHello 接口添加到 gRPC 服务中。
add_method 方法接受三个参数:rpc方法名、请求模型和响应模型。这里 say_hello 函数可以支持同步和异步代码,同步代码使用线程模拟异步来执行。
最后,我们通过 run 方法启动 gRPC 服务器。Fast-GRPC 会自动根据 Python 代码的接口定义生成 .proto 文件和 Python gRPC 代码,从而大大简化了开发过程。
最后我们用调用客户端来看看效果
  1. import grpc
  2. import greeter_pb2 as pb2
  3. import greeter_pb2_grpc as pb2_grpc
  4. channel = grpc.insecure_channel("127.0.0.1:50051")
  5. stub = pb2_grpc.GreeterStub(channel)
  6. response = stub.SayHello(pb2.HelloRequest(name="fastGRPC"))
  7. print("Greeter client received: ", response)
复制代码
相关链接

Fast-GRPC GitHub 仓库
下一步计划

目前,Fast-GRPC 支持的功能还比较简单,未来将继续改进和完善。如果您有任何建议或意见,请不要犹豫,欢迎提交 issue 或者 PR。

来源:https://www.cnblogs.com/liyatao/p/17392654.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具