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

gRPC-Gateway 不使用 http endpoint 方法生成 resiter

gRPC-Gateway 不使用 http endpoint 方法生成 resiter

Go
一只名叫tom的猫 2022-08-24 20:11:33
我正在尝试使用以使我的go grpc方法也可用于http调用。为此,我正在使用模块。但是,当我使用protoc生成proto文件时,我没有看到示例中所示的方法。这就是我的 .proto 文件的样子https://github.com/grpc-ecosystem/grpc-gatewayhttps://github.com/grpc-ecosystem/grpc-gatewayRegister*FromEndpointsyntax = "proto3";package health;option go_package = "github.com/user/app/api/health";import "google/api/annotations.proto";service Health {    rpc Ping (HealthRequest) returns (HealthReply) {      option (google.api.http) = {        get: "/ping"      };    }  }    // The request message containing the user's name  message HealthRequest {      }    // The response message containing the greetings  message HealthReply {    string message = 1;  }这就是我的原型命令的样子protoc --go_out=api/proto/ --go_opt=paths=source_relative \    --go-grpc_out=./api/proto --go-grpc_opt=paths=source_relative \    --proto_path=internal/api \    --proto_path=third_party \    ./internal/api/health/health.proto      生成工作正常,没有任何错误,但生成的文件没有等效方法,如此处的示例所示health_grpc.pb.goRegisterYourServiceHandlerFromEndpointhttps://github.com/grpc-ecosystem/grpc-gateway
查看完整描述

2 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

为了生成存根,我们可以使用 或 。 是业界广泛使用的更经典的一代体验。尽管如此,它仍有一个相当陡峭的学习曲线。 是一个较新的工具,考虑到用户体验和速度。它还提供起毛和破坏性变化检测,但有些东西不提供。protocbufprotocbufprotoc

您可以在此处阅读更多信息:https://grpc-ecosystem.github.io/grpc-gateway/docs/tutorials/generating_stubs/using_buf/buf


查看完整回答
反对 回复 2022-08-24
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

作为 grpc-gateway saied 的文档,我建议你使用 buf 而不是 protoc,它更简单友好。


您可以参考 grpc-gateway#usage 的文档


version: v1beta1

plugins:

  - name: go

    out: gen/go

    opt:

      - paths=source_relative

  - name: go-grpc

    out: gen/go

    opt:

      - paths=source_relative

  - name: grpc-gateway

    out: gen/go

    opt:

      - paths=source_relative

      - generate_unbound_methods=true

如果你仍然想使用protoc,你需要添加参数:--grpc-gateway_opt


protoc -I . --grpc-gateway_out ./gen/go \

    --grpc-gateway_opt logtostderr=true \

    --grpc-gateway_opt paths=source_relative \

    --grpc-gateway_opt generate_unbound_methods=true \

    your/service/v1/your_service.proto


查看完整回答
反对 回复 2022-08-24
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

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