首页 > 解决方案 > protobuf api-linter 显示时要导入的内容:“未知扩展 google.api.method_signature”

问题描述

我带着旗子跑:

api-linter rf/x/v1alpha1/y.proto \
  -I=/home/asd/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway/v2@v2.2.0/third_party/googleapis \
  -I=/home/asd/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway/v2@v2.2.0 \
  --disable-rule="core::0123::resource-annotation" \
  --disable-rule="core::0131::request-name-behavior" \
  --disable-rule="core::0131::method-signature" \
  --disable-rule="core::0131::request-name-reference" \
  --disable-rule="core::0132::request-parent-reference" \
  --disable-rule="core::0132::request-parent-behavior" \
  --disable-rule="core::0132::method-signature" 
  --disable-rule="core::0133::request-parent-behavior" \
  --disable-rule="core::0133::request-resource-behavior" \
  --disable-rule="core::0133::request-parent-reference" \
  --disable-rule="core::0133::http-uri-parent" \
  --disable-rule="core::0133::http-uri-parent" \
  --disable-rule="core::0133::method-signature" \
  --disable-rule="core::0192::has-comments" \
  --disable-rule="core::0191::java-outer-classname" \
  --disable-rule="core::0191::java-package"

要导入什么?

在它抱怨之前

message: Get methods should include `(google.api.method_signature) = "name"`
rule_id: core::0131::method-signature
rule_doc_uri: https://linter.aip.dev/131/method-signature

所以我添加了这一行:

  rpc GetFoo(FooRequest) returns (Foo) {
    option (google.api.http) = {
      get: "/v1/{name=foo/*}"
    };
    option (google.api.method_signature) = "name"; 
    // ^ this line added because api-linter complaint
  }

标签: protocol-buffers

解决方案


推荐阅读