banner
NEWS LETTER

基于 Grpc 反射的一款 Grpc 转 Http 请求的工具 grpc2http-gateway 的使用

Scroll down

码云:https://gitee.com/qianxunclub/grpc2http-gateway
GITHUB:https://github.com/qianxunclub/grpc2http-gateway

grpc2http-gateway

License
Language grade: Java
License

简介

该服务是基于 Grpc 反射 开发的一款 Grpc 换为 Http 请求的工具。
因为是基于反射开发,所以使用时无需修改 proto 及相关的代码实现,只需在启动服务时开启反射功能。

使用方法

服务端

因为是基于反射开发,需要服务端开启反射功能,开启方式:

  1. 使用 grpc-spring-boot-starter
    1
    grpc.server.reflection-service-enabled=true
  2. 原生开启
    1
    2
    3
    4
    5
    6
    Server server = ServerBuilder.forPort(SERVER_PORT)
    .addService(new HelloServiceImpl())
    // 这里开启反射
    .addService(ProtoReflectionService.newInstance())
    .build()
    .start();

grpc2http-gateway 服务添加环境变量配置

添加 GRPC 服务端应用

1
grpc.endpoint.服务名称=dev.coding.oa.com:9902

启动 grpc2http-gateway 服务

示例 proto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
syntax = "proto3";

package com.qianxunclub.proto;
option java_outer_classname = "HelloProto";

message HelloRequest {
string fieldName = 1;
}

message HelloResponse {
}

service HelloService {
rpc HelloWorld (HelloRequest) returns (HelloResponse);
}

获取服务端 Grpc 接口列表

GET 请求 http://localhost:8080/api/服务名称/

调用 Grpc 接口

1
2
3
4
5
6
7
curl \
--location \
--request POST 'http://localhost:8080/api/服务名称/Grpc方法名称[com.qianxunclub.proto.HelloService.HelloWorld]' \
--header 'Content-Type: application/json' \
--data-raw '{
"fieldName":"value"
}'

swagger 使用

配置 grpc2http-gateway 的 swagger 服务地址

1
2
# 这个配置是所部署的服务器地址的 IP 或者 域名,为了 swagger 执行调用
swagger.serverUrl=http://localhost:8080

访问:http://localhost:8080/swagger-ui/index.html

OPENAPI 地址填写:http://localhost:8080/api/v3/api-docs/服务名称

开发构建

docker 构建镜像

1
./docker-build.sh

构建完镜像名称为:grpc2http-gateway:latest

部署

docker-compose 部署

  1. 编辑 docker-compose.yml ,配置环境变量
  2. 启动
    1
    2
    cd docker-compose
    docker-compose up -d

开发者讨论

欢迎提交 PR 升级,有什么好建议或者想法的,可以添加QQ群一起讨论:852214454

其他文章
目录导航 置顶
  1. 1. grpc2http-gateway
    1. 1.1. 简介
    2. 1.2. 使用方法
      1. 1.2.1. 服务端
      2. 1.2.2. grpc2http-gateway 服务添加环境变量配置
      3. 1.2.3. 启动 grpc2http-gateway 服务
      4. 1.2.4. swagger 使用
    3. 1.3. 开发构建
      1. 1.3.1. docker 构建镜像
    4. 1.4. 部署
      1. 1.4.1. docker-compose 部署
    5. 1.5. 开发者讨论
请输入关键词进行搜索