gpt4 book ai didi

rest - GRPC 重复字段不会转码为数组作为 REST API 中的正文参数

转载 作者:行者123 更新时间:2023-12-04 08:19:24 26 4
gpt4 key购买 nike

我尝试使用 REST 将包含对象数组的 JSON 的 PUT 请求发送到我的 GRPC 服务器时运气不佳。但是,使用 GRPC 它会像预期的那样接受数组。这是我在我的原型(prototype)文件中定义的:

message UpdateRequest {
repeated Data data = 1;
int32 Id = 2;
}

message UpdateResponse {
}

message Data {
int32 id = 1;
string name = 2;

}

rpc Update(UpdateRequest) returns (UpdateResponse) {
option (google.api.http) = {
put: "/v1/data/{Id}"
body: "*"
};
}

这已成功部署到 GCP 端点,但根据 GCP enpointsportal,请求正文应该只包含一个对象,例如:

{
"data": {

}
}

而不是像预期的对象数组:

    {
"data": [
{},
{}
]
}

我试过用“数据”替换正文中的“*”

    rpc Update(UpdateRequest) returns (UpdateResponse) {
option (google.api.http) = {
put: "/v1/data/{Id}"
body: "data"
};
}

这也可以编译,但在尝试部署到 GCP 端点时失败并显示以下消息:

类型:错误message: "http: body field path 'data' must be a non-repeated message."

任何关于我应该如何解决这个问题的建议都将不胜感激。

更新:这是我的 .yaml 文件的内容。

type: google.api.Service
config_version: 3

name: xxx.xxx-xxx.dev

title: xxxx
apis:
- name: x.x
- name: x.y


backend:
rules:
- selector: "*"
address: grpcs://xxx-xxx-app-xxxx-lz.a.run.app

最佳答案

根据 GCP 支持,这是一个已知问题。这是 google issuetracker 链接:https://issuetracker.google.com/issues/178486575

关于rest - GRPC 重复字段不会转码为数组作为 REST API 中的正文参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65561639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com