gpt4 book ai didi

go - 如何正确运行 evans(gRPC 客户端)?

转载 作者:行者123 更新时间:2023-12-01 22:23:00 26 4
gpt4 key购买 nike

我有一个 city.proto我在其中导入了一个名为 gogoproto 的知名第三方包的文件.我创建了 gRPC 服务器,现在我想通过 evans 测试它的 rpc 方法gRPC 客户端。

我用过这样的命令 但它引发了一个错误:

evans proto/city.proto --host localhost --port 8000

错误 :

evans: failed to run REPL mode: failed to instantiate a new spec: failed to instantiate the spec from proto files: proto: failed to parse passed proto files: proto/city.proto:7:8: open github.com/gogo/p rotobuf/gogoproto/gogo.proto: The system cannot find the path specified.



city.proto :
syntax = "proto3";

package proto;

import "google/protobuf/wrappers.proto";
import "google/protobuf/timestamp.proto";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";

option go_package = "./proto";

message City {
uint64 id = 1 [
json_name = "id",
(gogoproto.jsontag) = "id"
];
google.protobuf.Timestamp foundation_date = 2 [
json_name = "foundation_date",
(gogoproto.jsontag) = "foundation_date",
(gogoproto.nullable) = false,
(gogoproto.stdtime) = true
];
google.protobuf.StringValue name = 3 [
json_name = "name",
(gogoproto.jsontag) = "name",
(gogoproto.wktpointer) = true
];
google.protobuf.StringValue country = 4 [
json_name = "country",
(gogoproto.jsontag) = "country",
(gogoproto.wktpointer) = true
];
}

***

去版本:
go version go1.12.9 windows/amd64

协议(protocol)版本:
libprotoc 3.11.4

埃文斯版本:
0.9.0

很可能,我没有正确尝试启动 REPL 模式。我假设该命令需要指定第三方 proto 文件所在目录的路径。我很困惑。如何正确启动 evans(gRPC 客户端)?

最佳答案

要正确运行 Evans,需要使用 --path 指定正确的路径来搜索导入。 .
它几乎类似于 --proto_pathprotoc .
例如,我们假设 github.com/gogo/protobuf位于/path/to/github.com/gogo/protobuf :

$ evans --path /path/to --path . proto/city.proto
$ evans --path /path/to --path . --proto proto/city.proto # Better

请注意 --path .也需要搜索 proto/city.proto .

由 Google 管理的知名 protos,例如 google/protobuf/wrappers.protogoogle/protobuf/timestamp.proto默认加载,但在其他情况下,我们必须指定正确的路径才能使用第三方 protos。

关于go - 如何正确运行 evans(gRPC 客户端)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61875066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com