gRPC-swagger 是基于 gRPC 反射开发的一款 gRPC 调试工具,可以使用 swagger-ui 方便地展示和调用 gRPC 方法。因为 gRPC-swagger 是基于反射开发,所以使用时无需修改 proto 及相关的代码实现,只需在启动服务时开启反射功能。
简单易用,只需启动服务时允许反射,无需修改 proto 及相关的实现。
集成 swagger-ui,可以方便的查看 gRPC 方法和参数定义。
通过 http 方式调用 gRPC 服务,极大的提高了测试效率。
wget https://github.com/grpc-swagger/grpc-swagger/releases/download/0.1.1/grpc-swagger-web-0.0.1-SNAPSHOT.jar java -jar grpc-swagger-web-0.0.1-SNAPSHOT.jar
git clone https://github.com/grpc-swagger/grpc-swagger cd grpc-swagger mvn clean package java -jar grpc-swagger-web/target/grpc-swagger-web-0.0.1-SNAPSHOT.jar
默认使用8080端口,如果使用其他端口可以通过--server.port=端口号
的方式设置
java -jar grpc-swagger-web/target/grpc-swagger-web-0.0.1-SNAPSHOT.jar --server.port=8888
运行 gRPC-swagger,具体参考部署运行
启动服务时开启反射。下面是 java 示例
pom.xml 中添加依赖
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-services</artifactId> <version>${grpc.version}</version> </dependency>
启动服务时允许反射:
Server server = ServerBuilder.forPort(SERVER_PORT) .addService(new HelloServiceImpl()) .addService(ProtoReflectionService.newInstance()) .build() .start();
注册实例,通过 register 将提供服务的实例注册到 gRPC-swagger 上,gRPC-swagger 会自动扫描服务,注册完成之后会返回注册成功的服务。后面可以通过 listServices 接口查看注册成功的服务。为了方便使用,这里 提供了一个简单的 html 页面。
使用 swagger-ui 查看 gRPC 服务,在输入框中输入 <host:port>/v2/api?service=<fullServiceName>
,其中fullServiceName
就是上面返回注册成功的服务。
点击 Try it out
进行服务测试
url:/register
参数:
host
- 地址(必填)
port
- 端口(必填)
groupName
- 分组名(选填),默认是 host:port
,通过指定分组名可以将部署相同服务的实例归为一组
返回示例
{ "code": 0, "data": { "groupName": "localhost:12347", "services": [ "io.grpc.grpcswagger.showcase.HelloService" ], "endpoints": [ "localhost:12347" ], "success": true } }
url: /listServices
返回示例
{ "code": 0, "data": { "localhost:12347": { "groupName": "localhost:12347", "services": [ "io.grpc.grpcswagger.showcase.HelloService" ], "endpoints": [ "localhost:12347" ], "success": true } } }
url: /{rawFullMethodName}
参数:
rawFullMethodName
- 需要调用方法的完整名,例如 io.grpc.grpcswagger.showcase.HelloService.GetUser
payload
- gRPC 方法参数,JSON 格式。可以使用 endpoint
参数,来指定需要调用的实例。
返回结果就是方法执行结果。
url: /v2/api-docs
返回 swagger-ui 展示需要的数据。
参数:
service - 完整的 services 名称,就是 listServices 中返回的 services 里的值
感谢 polyglot 项目,本项目中 gRPC 反射相关逻辑基于该项目进行修改。
Feel free to open an issue or pull request. We will appreciate it!
有人说,程序员最讨厌两件事情,一件是写文档,一件是别人不写文档,这充分展现了人类双标的本质,所谓的“严于律人”、“宽于律己”就是在说这件事情。虽然这种听来有点自私的想法,是生物自然选择的结果,可一旦人类的大脑皮层在进化过程中产生了“理性”,就会试图去纠正这种来自动物世界的阴暗面。所以,人类双标的本质,大概还是因为这个行为本身就有种超越规则、凌驾于众人之上的感觉,毕竟每个人生来就习惯这种使用特权的感
之前我们团队在 Go 语言上已经统一使用 gRPC + grpc-gateway 来提供 API 服务,最近为了写一个提供一个用于管理分析任务的接口服务,需要使用 Java 来实现(因为需要访问 HBase/HDFS/Flink等,Java 最方便),而 GRPC Gateway 本身是跟语言无关的,所以我就趁着这次机会尝试了一把,发现效果还挺好的 需要了解的基础Protocol buffer
Grpc_swagger 1.下载grpc_swagger.jar 包,下载地址:https://github.com/grpc-swagger/grpc-swagger 2.运行:用Git $ cd d:/Java $ java -jar grpc-swagger.jar –server.port=8888 默认是8080端口,如果需要修改端口 加–server.port=xxxx; 启动成功:
一、概述 在现代的微服务架构中,网关是一个非常重要的组件。它负责接收和处理客户端请求,并将它们转发给相应的服务。而gRPC Gateway则是一个Golang工程组件,它可以将RESTful API转换为gRPC API,从而方便我们使用gRPC协议进行服务之间的通信。本文将介绍gRPC Gateway的基本概念、安装和使用方法。 二、什么是gRPC Gateway gRPC Gateway是一个
0. 先决必要条件:golang 1.9+,这里略过。 1. quick install 来自这里 https://github.com/grpc/homebrew-grpc brew tap grpc/grpc brew install --with-plugins grpc 2. 从代码编译安装 2.1 protobuf install brew install autoconf automa
go-grpc 代码库及其工具 1. 什么是 Protocol Buffer Protobuf(全称Protocol Buffer)是Google 出品的一种数据描述语言,可类比于json,独立于语言与平台。 Protobuf 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,总得来说就是更小、更快、更简单
概述 最近这段时间工作挺忙的,发现已经 3 周没更文了... 感谢你们还在,今天给大家分享一款 gRPC 的调试工具。 进入正题。 当我们在写 HTTP 接口的时候,使用的是 Postman 进行接口调试,那么在写 gRPC 接口的时候,有没有类似于 Postman 的调试工具呢? 这是有的。 咱们一起看下 grpcui,源码地址: https://github.com/fullstorydev/
用于Chrome远程调试协议的替代传输。 进程: 主进程 Chrome调试工具在JavaScript运行时具有特殊绑定,允许与页面交互并对其进行检测。 1 const {BrowserWindow} = require('electron') 2 let win = new BrowserWindow() 3 4 try { 5 win.webContents.debugger.attach
快速免责声明,我是非常新的gRPC和RPC一般,所以请有耐心 对等点列表、是在以前的rpc调用中构建的。 客户 服务器端实现,
控制调试工具 控制调试工具用来管理调试当中的程序运行,提供了如下常用功能: 暂停、恢复程序运行; 终止进程 查看、禁用断点 获取线程堆栈 恢复程序运行 当程序在断点处暂停的时候,可以使用此功能来恢复程序运行. 如果有下一个断点, 就会跳转下一个断点处. 如果没有断点,程序就继续运行. 操作步骤: 调试工具栏: Resume Program 快捷键: Mac: option + command +
现提供基于Visual Studio Code的调试插件(beta版) zip包中包含有使用说明,具体安装使用方法可解压后查看 Mac版本下载地址 windows版本下载地址 XCode下的bricks工程 下载地址
webpack dev-server webpack-dev-server 是一个小型的 Node.js Express 服务器,它使用 webpack-dev-middleware 中间件来为通过 Webpack 打包生成的资源文件提供 Web 服务。它还有一个通过 Socket IO 连接着 webpack-dev-server 服务器的小型运行时程序。webpack-dev-server 发
1 adb的安装和使用 2 GDB调试环境搭建 3 录音工具vspdump使用指南
本文向大家介绍JavaScript调试工具汇总,包括了JavaScript调试工具汇总的使用技巧和注意事项,需要的朋友参考一下 现在的JavaScript事实上已然成为了流行的web语言,即使它并不完美。很多程序员不喜欢用JavaScript写代码,是因为写到后来总会出现各种莫名其妙的bug,而且在开发大型应用程序的过程中很容易犯错。而且鉴于当今此类工具的现状,要想在浏览器上做JavaScript