登录
首页 >  Golang >  Go问答

如何将静态文件添加到 grpc

来源:stackoverflow

时间:2024-03-02 20:27:26 178浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《如何将静态文件添加到 grpc》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我有一个 grpc 客户端和服务器。我有一个原型。我正在使用 grpc 网关,我想为客户端使用 html。有一个路径localhost:8081/test,我希望当我经过这个路径时它是一个html文件。 如何告诉处理程序在响应中提供 html 文件? 处理程序应该是什么样子?

syntax = "proto3";

option go_package = "/go_proto";
package api;

import "google/api/annotations.proto";

service authorization{
  rpc Test(testRequest) returns (testResponse){
    option(google.api.http) = {
      get: "/test"
    };
  }
   
}

message testRequest{
}

message testResponse{
  int32 arg1 = 1;
}

正确答案


如果我正确理解你的问题,你不能(直接)。

gRPC Gateway 是将 gRPC 服务公开为 (JSON) REST API 的一种方法(Envoy 的 gRPC-JSON transcoder 是另一种)。

在您的示例中,上述解决方案将使您能够对 /test 进行 HTTP GET 调用,返回 testResponse 的 JSON 表示形式 ({"arg1":...})。

如果您想提供 HTML,请参阅 Adding custom routes to the mux,这将允许您编写一个提供 HTML 的处理程序。

也看看 gRPC-Web。这需要 Node.JS,但它为 JavaScript 提供了 gRPC 客户端,作为上述 REST 客户端的替代方案。

如果您想使用 REST API 公开 gRPC 服务,请使用 gRPC Gateway 或 Envoy 的 gRPC-JSON transcoder。这使您能够拥有使用 gRPC REST 的客户端。

如果您只想拥有 gRPC 客户端,gRPC-Web 也可以让 Node.JS 开发人员访问您的 gRPC 服务。

到这里,我们也就讲完了《如何将静态文件添加到 grpc》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>