首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏golang云原生new

    gRPC-GateWay Swagger 实战

    上一次我们分享了关于 gRPC-Gateway 快速实战 ,可以查看地址来进行回顾 : 也可以查看关于 gRPC 的历史文章: gRPC介绍 gRPC 客户端调用服务端需要连接池吗? gRPC的拦截器 gRPC的认证 分享一下 gRPC- HTTP网关 I 今天主要是分享关于 gRPC-Gateway Swagger 的实战部分,文章大体分为如下几个部分: 基本环境补充 gRPC-GateWay third_party swagger 的资源目录 那么我们就动起手来,一个一个的将上述的内容填充起来吧: 安装 Protoc Plugin go get -u github.com/grpc-ecosystem/grpc-gateway 执行完毕之后,我们就可以在my_grpcgateway/pkg 目录下看到这样的目录结构了 关于环境的看到此处即可,剩下的就来开始 gRPC-GateWay Swagger 实战吧,再次动起手来干 gRPC-GateWay Swagger 实战 本次的 gRPC-GateWay Swagger 实战 是基于上次的 gRPC-GateWay 快速实战的项目代码的 修改 my_grpcgateway/protoc/order

    48040编辑于 2023-09-12
  • 来自专栏golang云原生new

    gRPC-Gateway 快速实战

    今天来分享一波 gRPC-Gateway , 之前咱们有分享过什么是 gRPC 及其使用方式,可以看看这些关于 gRPC 的历史文章: gRPC介绍 gRPC 客户端调用服务端需要连接池吗? gRPC的拦截器 gRPC的认证 分享一下 gRPC- HTTP网关 I 今天主要是分享关于 gRPC-Gateway 的实战部分,文章大体分为如下几个部分: gRPC-GateWay 简单原理介绍 基本环境创建 gRPC-GateWay 实战 gRPC-GateWay 简单原理介绍 如下是官网的一张基本原理图 gRPC-Gateway 是一个协议插件,它读取一个 gRPC 服务定义,并生成一个反向代理服务, 简单来说,咱们的 gRPC-Gateway 能做到的事情就是: 能够提供 RESTful JSON API 接口,并且请求通过 http 接口打进来,gRPC-Gateway 能够将其请求转给 grpc 服务,最终 grpc 服务进行处理并响应 接下来,我们就来看看 gRPC-Gateway 是如何同时提供 http 接口和 grpc 服务的 基本环境创建 使用 gRPC-Gateway ,我们需要搭建基本的环境

    87430编辑于 2023-09-12
  • 来自专栏实战docker

    gRPC学习之六:gRPC-Gateway集成swagger

    实战 gRPC-Gateway集成swagger 本篇概览 本文《gRPC学习》系列的第六篇,前文咱们实战了gRPC-Gateway,将gRPC服务以RESTful形式对外暴露,当时由于篇幅所限没有完成 swagger集成,本篇来完成这个工作:开发gRPC服务,为其提供gRPC-Gateway,并提供在线swagger服务; 本文由以下章节构成,这也是gRPC-Gateway集成swagger的常规流程 暴露的服务和参数定义,可以在页面上发起请求,此文件由插件protoc-gen-swagger生成,该插件是上一篇《gRPC-Gateway实战》中安装好的; 在gRPC-Gateway的代码中集成swagger-ui ; 生成gRPC、gRPC-Gateway所需的go源码 生成gRPC、gRPC-Gateway所需的go源码,这样的操作在前面已经做过,这里用swaggerdemo.proto再做一次,先进入目录$GOPATH 服务端的代码 开始编写gRPC-Gateway服务端代码,这是本文的重点所在,除了提供与前文一样的gRPC-Gateway服务,还提供了swagger的json文件服务,以及swagger的ui服务;

    1.1K30编辑于 2022-05-06
  • 来自专栏实战docker

    gRPC学习之五:gRPC-Gateway实战

    实战 gRPC-Gateway集成swagger 本篇概览 本文《gRPC学习》系列的第五篇,gRPC常用于服务端之间的相互调用,如果想把服务暴露给前端,虽然动手修改服务端也能实现,但似乎增加了不少工作量 ,此时还可以选择gRPC-Gateway方式来快速将gRPC服务以http的方式暴露出来; gRPC-Gateway原理如下图,借助grpc-gateway插件,可以基于proto文件生成反向代理(Reverse Proxy)的代码,这个反向代理运行起来后,对外提供RESTful服务,收到RESTful请求后通过gRPC调用原来的gRPC服务: 本文展示了gRPC-Gateway环境搭建、开发、验证的整个过程 ,由以下步骤组成: 极速搭建gRPC-Gateway环境; 编写proto文件; 根据proto文件生成gRPC、gRPC-Gateway源码; 添加业务代码; 编译、运行、验证; 提前说明文件和目录 环境 所谓的搭建gRPC-Gateway环境,其实是完成以下三件事: 在搭建环境时参考了一些网上的文章,结果遇到了各种问题一直没有成功(我当然不会认为文章有问题,必须认识到是自己能力不足的原因所致

    1.9K21编辑于 2022-05-06
  • 来自专栏喵了个咪的博客空间

    Grpc-Gateway - Grpc兼容HTTP协议文档自动生成网关

    还别说真还有一个准备好的轮子那就是今天的主角《grpc-gateway》。 附上: 喵了个咪的博客:w-blog.cn 博文实例demo:https://github.com/sunmi-OS/grpc-gateway-demo grpc-gateway官网:https://github.com /grpc-ecosystem/grpc-gateway 一,grpc-gateway介绍 grpc-gateway是protoc的一个插件 。 主要是根据 google.api.http定义中思想完成的,一下就是grpc-gateway结构图:  二,grpc-gateway环境准备 grpc-gateway使用完全的Go语言进行开发,所以安装起来也非常简单 go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger go get -u github.com/golang/protobuf

    4.3K30发布于 2019-05-26
  • 来自专栏k8s技术圈

    API 网关 gRPC-Gateway V2 初探

    gRPC-Gateway 简介 我们都知道 gRPC 并不是万能的工具。在某些情况下,我们仍然想提供传统的 HTTP/JSON API。 gRPC-Gateway 是 Google protocol buffers compiler protoc 的插件。 批注添加到现有的 proto 文件中 现在,我们已经可以使用 Go gRPC 服务器,我们需要添加 gRPC-Gateway 批注。 stubs 现在我们已经将 gRPC-Gateway 批注添加到了 proto 文件中,我们需要使用 gRPC-Gateway 生成器来生成存根(stubs)。 我们还需要在 main.go 文件中添加 gRPC-Gateway 多路复用器(mux)并为其提供服务。

    2.7K20发布于 2021-04-09
  • 来自专栏开源服务指南

    gRPC-Gateway:高效转换 RESTful 接口 | 开源日报 No.105

    picture grpc-ecosystem/grpc-gateway[1] Stars: 16.4k License: BSD-3-Clause gRPC-Gateway 是一个遵循 gRPC HTTP 接口 可自动生成 OpenAPI (Swagger) v2 API 定义 支持设置 gPRC 超时时间 自动将 PATCH 请求转换为 Field Mask gPRC 请求 主要功能包括: 支持从 grpc-gateway

    43410编辑于 2023-12-12
  • 来自专栏Go编程点滴

    Go语言学习 - RPC篇:gRPC-Gateway示例代码概览

    概览 gRPC-Gateway是gRPC生态的一环,用于对HTTP协议的扩展,是一套高性能、高扩展的开源RPC框架。 因此,要掌握gRPC-Gateway,必须要对gRPC有一定的基础,才能明白它的定位与价值。 而在gRPC-Gateway中怎么使用呢?我们会在具体示例中再去讲。 4. main函数框架 1~3步骤将一个RPC请求的开发过程串联了起来,作为web服务的高频迭代部分。 如果没有进程隔离的强要求,我们可以在main函数中同时启动 gRPC server和gRPC-Gateway server。 你也无需担心无法实践到日常项目中:gRPC-Gateway中的能力与gin等框架都是共通的,可以轻松地举一反三。

    1.2K30编辑于 2022-12-02
  • 来自专栏Golang语言开发栈

    Golang 语言 gRPC 服务怎么同时支持 gRPC 和 HTTP 客户端调用?

    今天我们介绍一个 protoc 插件 gRPC-Gateway。 02 gRPC-Gateway gRPC-Gateway 是 protoc 的一个插件。 添加 gRPC-Gateway 选项 gRPC-Gateway 使用 google.api.http 选项定义 gRPC 服务如何映射到 JSON 请求和响应,使用 protoc 时,每个 RPC 必须使用 生成 gRPC-Gateway 存根 现在,我们已将 gRPC-Gateway 选项添加到 proto 文件中,我们需要使用 gRPC-Gateway 生成器来生成存根。 创建 grpc-gateway 目录,并创建 main.go 文件,创建 gRPC-Gateway 多路复用器。 启动服务 grpc 服务 go run main.go gRPC-Gateway go run grpc-gateway/main.go cURL 测试 curl http://127.0.0.1:

    5.8K30编辑于 2022-03-31
  • 来自专栏黑客下午茶

    Go+gRPC-Gateway(V2) 微服务实战,小程序登录鉴权服务(六):客户端基础库 TS 实战

    系列 云原生 API 网关,gRPC-Gateway V2 初探 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务(三):RSA(RS512) 签名 JWT Go+gRPC-Gateway : go-grpc-gateway-v2-microservice https://github.com/Hacker-Linner/go-grpc-gateway-v2-microservice gRPC-Gateway https://github.com/grpc-ecosystem/grpc-gateway gRPC-Gateway Docs https://grpc-ecosystem.github.io/grpc-gateway

    95110发布于 2021-05-27
  • 来自专栏golang云原生new

    gRPC- HTTP网关 I

    gRPC-Gateway gRPC-Gateway是什么? gRPC-Gateway有啥优势呢? 使用gRPC提供HTTP接口有啥注意事项? 总结 gRPC- HTTP网关 I gRPC是什么? 当然是有的,gRPC为我们提供了一个很方便的gRPC-Gateway插件 gRPC-Gateway是什么? 是protoc的一个优秀的插件 gRPC-Gateway提供了基于proto文件中的服务接口定义生成HTTP的反向代理的能力。 当然不是 使用 gRPC-Gateway的优势如下: 可以保持Restful的简单性 gRPC-Gateway工具,让我们可以很快速的基于proto接口定义,在使用RPC的同时对外提供Restful gRPC提供的HTTP接口是基于HTTP 2.0的 别太爽就行 总结 回顾gRPC基本要点 HTTP网关的介绍 引出gRPC-gateway,以及其基本结构 好了,本次就到这里,下一次分享gRPC-gateway

    87640编辑于 2023-02-16
  • 来自专栏开源 & 技术分享

    gRPC: 如何设计 RPC 错误码?

    一起使用,这时候,会出现一个问题,GRPC 和 grpc-gateway 的错误映射。 注意,这里,在 boot.yaml 中需要开启 enableRkGwOption,才可以把 GRPC 错误映射成 grpc-gateway 错误。 发送请求 我们可以看到,针对于 grpc-gateway 的请求,rk-boot 把 GRPC 的错误,映射成了 400 错误。 注意,这里,在 boot.yaml 中需要开启 enableRkGwOption,才可以把 GRPC 错误映射成 grpc-gateway 错误。 , request.Name), }, nil } $ go run main.go 给 grpc-gateway 发送请求 我们可以看到,针对于 grpc-gateway 的请求,rk-boot 把

    2.9K70编辑于 2021-12-13
  • 来自专栏黑客下午茶

    Go+gRPC-Gateway(V2) 微服务实战,小程序登录鉴权服务(四):自动生成 API TS 类型

    系列 云原生 API 网关,gRPC-Gateway V2 初探 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇 Go + gRPC-Gateway(V2 ) 构建微服务实战系列,小程序登录鉴权服务:第二篇 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务(三):RSA(RS512) 签名 JWT 客户端强类型约束,自动生成 : go-grpc-gateway-v2-microservice https://github.com/Hacker-Linner/go-grpc-gateway-v2-microservice gRPC-Gateway https://github.com/grpc-ecosystem/grpc-gateway gRPC-Gateway Docs https://grpc-ecosystem.github.io/grpc-gateway

    80110发布于 2021-05-27
  • 来自专栏开源 & 技术分享

    gRPC: 如何让 gRPC 提供 Swagger UI?

    为了能让 gRPC 提供 REST API,我们需要使用 grpc-gateway 我们需要使用 protoc-gen-openapiv2 从 proto 文件,创建 Swagger UI 所需要的文件 Install protoc-gen-go-grpc 从 proto 文件,生成 GRPC 相关的 .go 文件 Install protoc-gen-grpc-gateway 从 proto 文件,生成 grpc-gateway Buf 快速编译 GRPC proto 文件】 或者访问:【https://rkdev.info/cn/docs/bootstrapper/user-guide/grpc-golang/basic/grpc-gateway go files based on proto files - name: grpc-gateway out: api/gen opt: - paths=source_relative / Register grpc registration function grpcEntry.AddRegFuncGrpc(registerGreeter) // Register grpc-gateway

    3.9K30编辑于 2021-12-13
  • 来自专栏开源 & 技术分享

    gRPC: 如何让 gRPC 提供 Restful API 服务?

    为了能让 gRPC 提供 REST API,我们需要使用 grpc-gateway 请访问如下地址获取完整教程:https://rkdev.info/cn https://rkdocs.netlify.app Buf 快速编译 GRPC proto 文件】 或者访问:【https://rkdev.info/cn/docs/bootstrapper/user-guide/grpc-golang/basic/grpc-gateway go files based on proto files - name: grpc-gateway out: api/gen opt: - paths=source_relative rkgrpc.RkGwServerMuxOptions 功能 详情 HttpErrorHandler 主要代码从原有 grpc-gateway 代码中抄写而来,启动器会返回 RK 推荐的 API 错误结构 这是默认的 grpc-gateway 中的错误映射。

    3.3K95编辑于 2021-12-13
  • 来自专栏黑客下午茶

    Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇(内附开发 demo)

    系列 云原生 API 网关,gRPC-Gateway V2 初探 业务流程 官方开发接入文档 初始化项目 开发环境 为少 的本地开发环境 go version # go version go1.14.14 │ └── auth.go // service 的具体实现 │ ├── wechat │ └── main.go // 鉴权 gRPC server ├── gateway // gRPC-Gateway / 按 oauth2 约定走 } service AuthService { rpc Login (LoginRequest) returns (LoginResponse); } 使用 gRPC-Gateway - selector: auth.v1.AuthService.Login post: /v1/auth/login body: "*" 根据配置生成代码 使用 gen.sh 生成 gRPC-Gateway https://github.com/grpc-ecosystem/grpc-gateway gRPC-Gateway Docs https://grpc-ecosystem.github.io/grpc-gateway

    1.4K20发布于 2021-05-27
  • 来自专栏火丁笔记

    记又一次对Makefile的重构

    github.com/goreleaser/goreleaser" _ "github.com/bufbuild/buf/cmd/buf" _ "github.com/grpc-ecosystem/grpc-gateway /v2/protoc-gen-grpc-gateway" _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2" _ " 依赖工具: .PHONY: dep dep: @go install \ github.com/bufbuild/buf/cmd/buf \ github.com/grpc-ecosystem/grpc-gateway /v2/protoc-gen-grpc-gateway \ github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 \ github.com

    36920编辑于 2021-12-14
  • 来自专栏黑客下午茶

    Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇(内附开发 demo)

    系列 云原生 API 网关,gRPC-Gateway V2 初探 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇 鉴权微服务数据持久化 使用 Docker dao.NewMongo(mongoClient.Database("grpc-gateway-auth")), Logger: logger, }) 运行 Service: go run auth/main.go gRPC-Gateway : go-grpc-gateway-v2-microservice https://github.com/Hacker-Linner/go-grpc-gateway-v2-microservice gRPC-Gateway https://github.com/grpc-ecosystem/grpc-gateway gRPC-Gateway Docs

    1.3K20发布于 2021-05-27
  • 来自专栏Go编程点滴

    Go语言学习 - RPC篇:gRPC拦截器剖析

    gRPC-Gateway的方案里,包括了两块中间件的能力: gRPC中的ServerOption,是所有gRPC+HTTP都会被处理 gRPC-Gateway中的ServeMuxOption,只有HTTP gRPC协议提供了两种RPC调用的方式: Unary普通的单次调用 Stream流式调用 我们框架的RPC调用都来自gRPC-Gateway对HTTP协议的转发,是属于Unary这块,所以我们聚焦于UnaryServerInterceptor 这里,我再额外补充两个容易陷入误区的点: gRPC-Gateway中也有拦截器的实现,但我们尽可能只做协议的转换:将HTTP Header转换到gRPC-Gateway。 按调用方,来源分2种情况: 如果调用方是gRPC,那就要求调用方在metadata里填充这个Key 如果调用方是HTTP,需要人工将HTTP的Header映射到gRPC的metadata,这部分就是在gRPC-Gateway 接下来,我们将视角转移到gRPC-Gateway方案,看看在针对HTTP方面又有哪些高效的middleware。

    1.2K30编辑于 2022-12-02
  • 来自专栏黑客下午茶

    Go+gRPC-Gateway(V2) 微服务实战,小程序登录鉴权服务(五):鉴权 gRPC-Interceptor 拦截器实战

    系列 云原生 API 网关,gRPC-Gateway V2 初探 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务(三):RSA(RS512) 签名 JWT Go+gRPC-Gateway : go-grpc-gateway-v2-microservice https://github.com/Hacker-Linner/go-grpc-gateway-v2-microservice gRPC-Gateway https://github.com/grpc-ecosystem/grpc-gateway gRPC-Gateway Docs https://grpc-ecosystem.github.io/grpc-gateway

    1.8K10发布于 2021-05-27
领券