GRPC设计的当前REST API

问题描述 投票:0回答:1

我正在研究将大量REST API服务移植到qazxsw poi架构的可能性,但这就是问题所在。

我们目前大量使用API​​的一种方法,它根据作为参数接收的函数名称调用多个PostgreSQL函数,输入作为请求的主体,即:gRPC,DB中定义的函数收到并返回JSON。

因此,如果我理解得很好,api.com/functions/exec/{name}方法只能为接收和返回类型提供静态数据结构。我怎样才能使它变得灵活?因为依赖于DB函数被称为要返回的数据结构并作为输入发送

API返回的结构类似于

gRPC

发送到API的数据结构取决于加密时要使用的模式,请求体将是二进制字符串

{
  "code": 200,
  "data": {
    "some": "value"
  },
  "status": "Correct..blabla"
}

如果它没有加密,那么它只是常见的JSON

a37163b25ed49d6f04249681b9145f63f64d84a486e234fa397f134f8b25fd62f1e755e40c09da09f9900beea4b51fc638e7db8730945bd319600943e01d10f2512fa6ab335fb65de32fc2ee0a2150f7987ae0999ea5d8d09e1125c533e7803ba9118ee5aff124282149792a33dce992385969b9df2417613cd2b039bf6056998469dfb015eade9585cb160275ec83de06d027180818652c60c09ada1c98d6e9ed11df9da737408e14161ae00aaf9d4568a015dc6b6d267f1ee04638dd60e4007dc543524b83ca6b2752c5f21e9dfff3b15e6e55db8b9be9e8c07d64ccd1b3d44ce48cc3e49daee5ae1da5186d9ef6994ccf41dc86a4e289fdbab8ca4a397f929445c42f40268ebb2c3d8bcb80f9e844dba55020da665bce887bd237ae2699876e12cc0043b91578f9df2d76391d50fbf8d19b6969

我能想到的一个可能的解决方案是在请求和响应类型上始终使用类型{ "one": "parameter" } ,我唯一需要做的就是将JSON转换为二进制字符串,反之亦然?

我愿意接受建议。

rest protocol-buffers grpc api-design
1个回答
1
投票

根据您的需求和性能要求,如果您对protobuf字段没有任何其他用途,那么进行原始字节路由可能是明智的。如果这样做,您可能需要定义支持加密和未加密消息字段的消息类型,例如:byte

© www.soinside.com 2019 - 2024. All rights reserved.