为了账号安全,请及时绑定邮箱和手机立即绑定

gRPC 和 Swagger 注解区别

gRPC 和 Swagger 注解区别

Go
千万里不及你 2023-05-08 15:55:38
我有一个协议缓冲区定义,它google.protobuf.Timestamp作为消息的一部分包含在内。Timestamp 消息非常简单,具有以下定义:message Timestamp {  int64 seconds = 1;  int32 nanos = 2;}因此,gRPC 负载如预期的那样作为一个简单的值元组出现。但是我也想为同一消息为 REST API 生成一些 swagger 注释,但它似乎将时间戳转换为 RFC 3339 样式字符串:"timestamp": {  "type": "string",  "format": "date-time",  "title": "timestamp"}我最近开始使用协议缓冲区和 gRPC,所以我不确定我是否遗漏了什么,但这似乎与 grpc-gateway 实现不一致。为什么 REST 的格式与 gRPC 负载不同?还是我错过了一些方法来告诉 protoc-gen-swagger 不要将消息转换为字符串?
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

我不太熟悉 protoc-gen-swagger 本身,但我相信这是因为这里定义的 json-proto 格式而发生的:

这样做是为了让基于 JSON 的 API 更加“自然”。我不知道有什么办法可以避免这种情况,除非使用您自己的类型来保存时间戳而不是google.protobuf.Timestamp. 但是,JSON 转换应该在两个方向上都能正常工作,所以当库将 JSON 转换回原始消息时,应该不会造成任何问题。


查看完整回答
反对 回复 2023-05-08
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信