Python调用RPC接口

背景

在测试过程中经常需要手动调用后端rpc接口,目前有三种调用方式
1.通过类似go 反射的方式,将http请求转为rpc请求
2.直接在pod中通过grpcurl命令调用
3.通过python代码直接调用

通过grpcurl命令行调用

  1. 安装grpcurl
# 通过wget下载
wget https://github.com/fullstorydev/grpcurl/releases/download/v1.8.7/grpcurl_1.8.7_linux_x86_64.tar.gz
  1. 上传pb文件
# 上传pb文件
tar -zcvf protobuf.tar.gz protobuf
sftp -o xxx {
   ip}

注意:如果pb文件中依赖,可以将import 文件的路径移除,把依赖的文件放到pb同目录下
例如:

# 依赖
import "/xxx/xxx/xxx/common.proto";
# 改为
import "common.proto";

再将依赖文件拷贝过来

cp /xxx/xxx/xxx/common.proto .
  1. 在grpcurl根目录执行命令
./grpcurl -plaintext -d '{"user_id": 1,"order_id": 1}' -import-path protobuf/protobuf3-include -import-path protobuf -proto protobuf/protobuf3/order/order.proto {
   ip}:{
   port} order.OrderManager/CreateOrder

通过python client请求接口

类似go,需要先转为python可用的rpc client才能调用

  1. 安装工具包
# 升级pip
$ python -m pip install --upgrade pip
# 安装grpc
$ python -m pip install grpcio
# 安装grpc工具
$ python -m pip install grpcio-tools
  1. 生成接口文件
# -*- coding: utf-8 -*-
"""
@Time : 2022/2/10 下午2:31
@Author : 
@File : compile_proto.py
"""
import os
from pathlib import Path
 
 
def combile_pbfile(pb_file_name):
    for filename in os.listdir
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值