protobuf post 带字符串格式的 rpc 方法
protobuf post rpc method with string formatting
我的 .proto 文件中有这个 rpc:
message SetFlagRequest {
string name = 1;
bool enable = 2;
}
rpc SetFeatureFlag(SetFlagRequest) returns (FlagStatus) {
option (google.api.http) = {
post: "/v2/flags/{name}/{enable}"
body: "*"
};
//...
我想要 post 地址:
"/v2/flags/{name}/enable"
(对于 enable = true)而不是 "/v2/flags/{name}/true"
"/v2/flags/{name}/disable"
(对于 enable = false)而不是 "/v2/flags/{name}/false"
是否有在 .proto
文件中格式化字符串的方法?
不,标准做法是将它们明确化。
message SetFlagRequest {
string name = 1;
}
rpc EnableFeatureFlag(SetFlagRequest) returns (FlagStatus) {
option (google.api.http) = {
post: "/v2/flags/{name}/enable"
body: "*"
};
rpc DisableFeatureFlag(SetFlagRequest) returns (FlagStatus) {
option (google.api.http) = {
post: "/v2/flags/{name}/disable"
body: "*"
};
然后在你的每个实现中,如果你愿意,你可以调用一个通用方法。
我的 .proto 文件中有这个 rpc:
message SetFlagRequest {
string name = 1;
bool enable = 2;
}
rpc SetFeatureFlag(SetFlagRequest) returns (FlagStatus) {
option (google.api.http) = {
post: "/v2/flags/{name}/{enable}"
body: "*"
};
//...
我想要 post 地址:
"/v2/flags/{name}/enable"
(对于 enable = true)而不是 "/v2/flags/{name}/true"
"/v2/flags/{name}/disable"
(对于 enable = false)而不是 "/v2/flags/{name}/false"
是否有在 .proto
文件中格式化字符串的方法?
不,标准做法是将它们明确化。
message SetFlagRequest {
string name = 1;
}
rpc EnableFeatureFlag(SetFlagRequest) returns (FlagStatus) {
option (google.api.http) = {
post: "/v2/flags/{name}/enable"
body: "*"
};
rpc DisableFeatureFlag(SetFlagRequest) returns (FlagStatus) {
option (google.api.http) = {
post: "/v2/flags/{name}/disable"
body: "*"
};
然后在你的每个实现中,如果你愿意,你可以调用一个通用方法。