我使用GRPC-Gateway为我的GRPC服务托管rest API.

我有两次火:

API A

 option (google.api.http) = {
      post: "/v1/product/{id}"
      body: "*"
    };

空气污染指数B

 option (google.api.http) = {
      post: "/v1/product/unit"
      body: "*"
    };

但是当我调用POST v1/产品/单位时 GRPC-网关重定向到使用API A的方法. 我错过了什么吗?

推荐答案

这取决于您在网关多路复用器中注册GRPC服务器的顺序.这并不明显,但您应该在注册更精确的路径(/v1/product/uni)之前注册更通用的路径(/v1/product/{id}).然后,您应该更改GRPC-Gatewar ServeMux中GRPC服务器的注册顺序

Go相关问答推荐

在字符串与字符串子切片上使用len进行位转移产生意外输出

Golang SDK for DynamoDB:ReturnValuesOnConditionCheckFailure在条件chcek失败发生时不返回条件的详细信息

死锁 - 所有 goroutine 都处于睡眠状态(即使使用等待组)

Kafka golang 生产者在错误后更改分区计数

无法在go中为docker容器写入有效的挂载路径

无法使用带有 422 的 go-github 创建提交 - 更新不是快进

使用 Go Colly 抓取所有可能的标签并将它们放入一个变量中

如何在 gocql 中设置最大池大小?

如何将整数哈希细分为范围

如何确定作为函数参数传递的指针是否正在被修改或副本是否正在被修改?

如何在 golang 中同时加载 .env 文件和 os 环境变量

当有多个同名包时如何在vscode中显示golang包完整路径?

Golang泛型在用作 map 元素时不起作用

从golang中的url加载图像

如何优雅地映射到 Go 中返回可变长度数组的方法?

Golang:每个键具有多个值的映射

退格字符在围棋操场中不起作用

Go:如何通过 GIN-Router 从 AWS S3 将文件作为二进制流发送到浏览器?

comparable和any有什么区别?

是否存在一个Go泛型类型约束,该约束捕获了将类型用作映射中的键的能力?