作者:墨镜小辣妹 | 来源:互联网 | 2022-12-08 08:09
我目前正致力于创建一个使用gRPC网关/ HTTP反向代理的gRPC服务,以提供HTTP支持.我想遵循Google API设计的通用惯例.
我在Google API设计指南中找到的示例使用google.protobuf.Empty
消息来表示删除方法/ RPC的响应.这很好,但是当我使用来自grpc-gateway的protoc- gen-swagger从文件生成.swagger.json
文件时,消息的描述将被作为响应对象的描述拉入.这与我的API用户无关,可能会让人感到困惑,因为使用HTTP网关的人不使用protobufs..proto
google.protobuf.Empty
...
"paths": {
"/v1/{name}": {
"delete": {
"summary": "Deletes a book.",
"operationId": "DeleteBook",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/protobufEmpty"
}
}
},
...
}
}
},
"definitions": {
"protobufEmpty": {
"type": "object",
"description": "service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
"title": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:"
}
}
我想说这是一个应该由protoc-gen-swagger插件解决的问题,除了它确实在做它应该做的事情.是否有HTTP注释以某种方式处理或覆盖响应中的字段?如果没有,人们如何处理这个?