Evans(gRPC客户端)是一个基于Go语言实现的支持交互模式的gRPC客户端,相比于其他同类软件,Evans(gRPC客户端)大大减少了开发测试时间,使用起来十分的便捷,感兴趣的朋友快来下载吧。
Evans的创建是为了比其他现有的gRPC客户端更容易使用。
如果你想保持你的产品质量,你必须使用CI与gRPC测试,不应该使用手动测试。
Evans将完成你的其他用例,就像。
手动进行gRPC API检查
通过脚本实现一些任务的自动化
以上用例对应于Evans的两种模式:REPL模式和CLI模式。
动机
创建Evans是为了使其比其他现有gRPC客户端更容易使用。 如果要保持产品质量,则必须将CI与gRPC测试一起使用,而不应该使用手动测试。 Evans将完成您的其他用例,就像:
手动gRPC API检查
通过脚本自动执行某些任务
上述用例对应于Evans的两种模式,REPL模式和CLI模式。
REPL模式
REPL模式是第一个用例的解决方案。 您可以使用它而无需考虑软件包名称,服务名称,RPC名称,命令用法等,因为REPL模式具有强大的完成功能!
CLI模式
CLI模式是无状态模式,就像。 顾名思义,它每条命令发送一个请求。 因此它基于UNIX哲学。
例如,从stdin读取输入,该命令将是过滤器命令。 另一方面,命令结果将通过JSON格式输出到stdout 。 因此,您可以使用jq之类的任何命令来格式化它。 另外,如果要使用相同的命令(例如,使用相同的JSON输入),则可以使用--file ( -f )选项。
目录
安装
强烈建议使用GitHub Releases或Homebrew,因为它们可以通过Evans的内置功能自动更新。
CLI模式也有一些命令。
list该命令向gRPC服务器提供gRPC服务检查。
$ evans -r cli列表api.Examplegrpc.reflection.v1alpha.ServerReflection
如果指定了服务名称,则显示属于该服务的方法。
$ evans -r cli list api。示例api.Example。一元api.Example.UnaryBytesapi.Example.UnaryEnum...
desc命令描述了传递的符号(服务,方法,消息等)。
api。示例:服务示例{rpc一元(.api.SimpleRequest)返回(.api.SimpleResponse);rpc UnaryBytes(.api.UnaryBytesRequest)返回(.api.SimpleResponse);rpc UnaryEnum(.api.UnaryEnumRequest)返回(.api.SimpleResponse);...}
call命令调用一个方法。您可以输入来自stdin或文件的请求。
使用--file(-f)指定文件。
$ cat request.json{“ name ”: “ ktr ”}$ evans --proto api / api.proto cli调用--file request.json api.Example.Unary{“ message ”: “您好,ktr ” }
如果启用了gRPC反射,则--reflection(-r)可用而不是指定原型文件。
$ evans -r cli调用--file request.json api.Example.Unary{“ message ”: “您好,ktr ” }
使用stdin。
$ echo ' {“ name”:“ ktr”} ' | evans cli调用api.Example。一元{“ message ”: “您好,ktr ” }
如果.evans.tomlGit项目根目录中存在,则可以表示默认值。
[默认] protoFile = [ “ api / api.proto ” ]包= “ api ”服务= “示例”
这样,该命令将更加清晰。
$ echo ' {“ name”:“ ktr”} ' | evans cli call一元{“ message ”: “您好,ktr ” }