首页 > 解决方案 > 如何使用 gRPC 创建一个 rest API 来读取 go lang 中的文本或任何文件?

问题描述

我正在尝试用 Go 编程语言创建一个 REST API 来读取文本文件。

我想使用 gRPC 构建它。

标签: apigogrpc

解决方案


您可以按照gRPC 文档中的Go 介绍进行操作。

基本流程如下:

1) 为您的数据结构编写 Protocol Buffers 定义和集成它们的 gRPC 服务定义:

package fileserver

message FileRequest {
  string name = 1;
}

message FileResponse {
  bytes contents = 1;
}

service FileServer {
  rpc ReadFile (FileRequest) returns (FileResponse) {}
}

2) 使用“protoc”工具生成 gRPC/PB 绑定(您还需要“protoc-gen-go”)。命令通常是:

protoc --go_out=plugins=grpc:. *.proto

3)实现服务器:

type FileServer struct{}

func (s *FileServer) Dispatch(ctx context.Context, fileRequest *fileserver.FileRequest) (*fileserver.FileResponse, error) {
  f, _ := ioutil.ReadFile(fileRequest.Name)
  fileResponse := &fileserver.FileResponse{Contents: f}
  return fileResponse, nil
}

推荐阅读