protoc 插件-protoc-gen-grpc-gateway-gosdk

protoc-gen-grpc-gateway-gosdk是一个protoc插件,用于根据proto文件生成Go HTTP SDK客户端代码。它支持一键生成、统一网关、资源分类,并提供接口扩展和单元测试支持。教程涵盖基本介绍、安装、快速使用、http sdk结构剖析以及高级微服务版使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

👇我在这儿 

基本介绍

protoc-gen-grpc-gateway-gosdk 是一个 protoc 插件, 能根据 proto 文件一键生成 go http sdk 客户端代码,通过借助 grpc-gateway 插件将 grpc 接口转化为 http 的方式, 进而可以通过本插件生成 http sdk 代码。

5198c19b722358b8332b78e534359a57.png


特性

1.一键自动生成 go 客户端代码, 无需人工维护

2.通过设置统一网关, 支持将多个微服务的客户端整合

3.根据 service 或者根据路由进行资源分类, 直观调用

4.能对资源接口进行扩展, 如支持 websocket 接口以及支持扩展 http 原生框架的接口

5.自带 http rest frame 封装, 并支持 Direct 方式调用接口

6.能自动生成接口 fake 调用, 让单元测试更加简单

8de776c3d70fafbfd12b5626f9dd2797.gif


安装

go install github.com/golang/protobuf/protoc-gen-go@v1.3.2
go install github.com/jaronnie/protoc-gen-grpc-gateway-gosdk@v1.8.0


快速使用

编写 proto

syntax = "proto3";
option go_package = "./userpb";
package user;

import "google/api/annotations.proto";

message AddUserReq {
      string name = 1;
      int32 age = 2;
}

message AddUserResp {
      int32 id = 1;
}

service user {
      rpc Add(AddUserReq) returns (AddUserResp) {
            option (google.api.http) = {
                  post: "/api/v1.0/user/add"
                  body: "*"
            };
      };
}

目录结构如下:

$ tree proto              
proto
├── google
│   └── api
│       ├── annotations.proto
│       └── http.proto
└── user.proto

2 directories, 3 files

生成 httpsdk

生成的 sdk 代码在服务端:

mkdir -p pkgsdk/pb
protoc -I./proto --go_out&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值