gRPC: gRPC 接口与 Restful API 混合使用-阿里云开发者社区

开发者社区> 尹东勋> 正文

gRPC: gRPC 接口与 Restful API 混合使用

简介: 本文将介绍如何在 gRPC 微服务中混合使用 Restful API。 这里我们并不是把 gRPC 接口转换成 Restful API,而是让不同的 gRPC 接口与 Restful API 共存。
+关注继续查看

介绍

本文将介绍如何在 gRPC 微服务中混合使用 Restful API。

这里我们并不是把 gRPC 接口转换成 Restful API,而是让不同的 gRPC 接口与 Restful API 共存。
grpc-gateway 已经支持了此功能。

我们将会使用 rk-boot 来启动 gRPC 服务。

请访问如下地址获取完整教程:

安装

go get github.com/rookie-ninja/rk-boot

快速开始

这个例子中,不会编写任何 gRPC 接口,我们会在 gRPC 服务中加入一个独立的 Restful API。

1.创建 boot.yaml

---
grpc:
  - name: greeter                   # Name of grpc entry
    port: 8080                      # Port of grpc entry
    enabled: true                   # Enable grpc entry

2.创建 main.go

在 grpc-gateway 中创建一个 GET /custom 方法。

通过 boot.GetGrpcEntry("greeter").GwMux.HandlePath() 方法来加入自定义的接口。比如文件上传。

package main

import (
    "context"
    "github.com/rookie-ninja/rk-boot"
    "net/http"
)

// Application entrance.
func main() {
    // Create a new boot instance.
    boot := rkboot.NewBoot()

    // Bootstrap
    boot.Bootstrap(context.Background())

    // Get grpc entry with name
    grpcEntry := boot.GetGrpcEntry("greeter")
    
    // !!!!!!
    // This codes should be located after Bootstrap()
    grpcEntry.GwMux.HandlePath("GET", "/custom", func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) {
        w.Write([]byte("Custom routes!"))
    })

    // Wait for shutdown sig
    boot.WaitForShutdownSig(context.Background())
}

3.验证

$ curl "localhost:8080/custom"
Custom routes!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PostgreSQL 通过SQL接口关闭、重启数据库
PostgreSQL 通过SQL接口关闭、重启数据库
1069 0
Spring Boot使用过滤器和拦截器分别实现REST接口简易安全认证
本文通过一个简易安全认证示例的开发实践,理解过滤器和拦截器的工作原理。
4840 0
分布式RPC框架:Dubbo架构解析!使用Dubbo实现负载均衡
本文首先介绍了分布式架构系统中远程RPC调用服务框架Dubbo的应用架构,分析了DUbbo应用架构中各个组件的作用。然后重点介绍了Dubbo中服务治理相关的负载均衡策略,分析了不同的负载均衡策略各自的特点。最后说明了在分布式项目中服务端级别,客户端级别,服务端方法级别和客户端方法级别的具体负载均衡配置。通过这篇文章,可以了解熟悉Dubbo架构的负载均衡策略和使用方式。
51 0
SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
一、导入依赖 4.0.0 org.springframework gs-actuator-service 0.1.0 org.springframework.
1014 0
+关注
尹东勋
点目科技创始人
60
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载
http://www.vxiaotou.com