本文介绍一个python使用pb(protocol buffer)的示例
一、proto 对象定义
新建文件,命名 test.proto(注:后缀必须是proto),内容如下:
(下面定义了2个结构体:TestApiRes、TestApiReq)
syntax = "proto3";
package test;
message TestApiRes {
uint32 Status = 1;
string Message = 2;
}message TestApiReq
{
string UserId = 1;
string Password = 2;
};
二、生成基于python语言的pb代码
执行命令:protoc test.proto --python_out=./
生成文件:test_pb2.py
三、python代码调用pb
import test_pb2 as myTest
import json
from flask import request, make_response
# 如下为1个接口的定义
@app.route('/test', methods=['POST'])
def api_test():
req = request.get_data()
# 将请求内容转为pb对象
req_obj = myTest.TestApiReq()
req_obj.ParseFromString(req)
print(req_obj.UserId)
print(req_obj.Password)
#新建一个pb响应对象,然后赋值,返回
res_obj = myTest.TestApiRes()
res_obj.Status = 200
res_obj.Message = "ok"
#序列化
sts = res_obj.SerializeToString()
return make_response(sts)