api - 如何使用 gRPC 创建一个 rest API 来读取 go lang 中的文本或任何文件?
问题描述
我正在尝试用 Go 编程语言创建一个 REST API 来读取文本文件。
我想使用 gRPC 构建它。
解决方案
您可以按照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
}
推荐阅读
- django - 如何在 Django 2.2 中克隆模型及其依赖项?
- autodesk-forge - 在firefox的forge查看器中禁用触摸板上的页面滚动滚动
- python - SQLAlchemy 警告:列不会成为声明性映射的一部分
- javascript - JS/DOM,性能:您是否应该尝试使用尽可能少的事件侦听器?
- r - 格式化 geom_tile ggplot2 内堆叠 geom_bar 的内部行
- flutter - flutter - 查看容器内的网页
- text - 谷歌语音是否有任何 URL 结构可以准备好数字输入?
- r - 非线性最小二乘故障排除
- .net - 将 .net core 2.2 升级到 3.0
- c++ - 如何将指针传递给指针向量?