gRPC是一款广泛应用的rpc框架,由于根据C/S架构,服务发动之后,需求编写对应的客户端才干调用,调试起来相对费事一些,这儿主要介绍一下怎么通过swagger-ui来调试grpc服务。
grpc-swagger
gRPC-swagger是根据gRPC反射开发的一款gRPC调试东西,能够运用swagger-ui方便地展示和调用gRPC办法。由于gRPC-swagger是根据反射开发,所以运用时无需修改proto及相关的代码完成,只需在发动服务时敞开反射功用(不只java,其他言语也能够)。下图是运用作用
项目地址
grpc-swagger
运用办法
发动grpc-swagger服务
grpc-swagger是根据springboot开发,能够下载jar包直接运行:
wgethttps://github.com/grpc-swagger/grpc-swagger/releases/latest/download/grpc-swagger.jar
java-jargrpc-swagger.jar
发动服务时敞开反射
该东西是根据gRPC反射做的,所以需求在发动服务时敞开反射,下面是java敞开反射的办法:
添加依靠
<dependency><groupId>io.grpcgroupId><artifactId>grpc-servicesartifactId><version>${grpc.version}version>dependency>
敞开反射
Serverserver=ServerBuilder.forPort(SERVER_PORT)
.addService(newHelloServiceImpl())//这儿敞开反射.addService(ProtoReflectionService.newInstance())
.build()
.start();
其他言语敞开办法参考GRPCServerReflectionProtocol
注册服务
由于咱们一开端并不知道对应的gRPC服务供给哪些服务办法,所以这儿有个注册服务的进程,其所做的事便是输入方针服务的地址,然后通过反射来获取当时gRPC服务供给的服务办法。当时供给一个简单的页面,地址是http://localhost:8080/ui/r.html,在EndpointRegister里填入grpc服务的地址,成功注册之后会在Services里列出可用的服务
运用swagger-ui调用gRPC服务
下面就比较简单了,通过链接跳过来便是一个swagger-ui的页面,点击Tryitout就能够开端调试了。
完成原理
这儿说下大概的完成原理:
gRPC供给了反射的功用,通过反射,咱们能够完成获取服务的界说、动态的调用gRPC办法、JSON和PB相互转化等功用,这儿的完成主要是利用了这个功用。
Swagger-ui也供给了文档的格局规范,咱们将获取到的gRPC服务界说转化成swagger-ui需求的格局,就能够运用swagger-ui来进行服务界说的展示和调用了。
如果还有兴趣的同学,能够去看下源码。
广州天河区珠江新城富力盈力大厦北塔2706
020-38013166(网站咨询专线)
400-001-5281 (售后服务热线)
深圳市坂田十二橡树庄园F1-7栋
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服务专线:400-001-5281
长沙市天心区芙蓉中路三段398号新时空大厦5楼
联系电话/ (+86 0731)88282200
品牌服务专线/ 400-966-8830
旗下运营网站:
Copyright © 2016 广州思洋文化传播有限公司,保留所有权利。 粤ICP备09033321号