构建 JSON/HTTP 服务与使用 Protocol Buffers 进行数据结构化
1. 选择合适的 API 技术
在开发中,对于内部 Web API,公司可能会利用像 Protobuf 这样的技术,以实现 JSON/HTTP 所不具备的功能,如类型检查和版本控制。而公共 API 通常仍会采用 JSON/HTTP,以确保可访问性。
许多基础设施项目的 API 都选择了 JSON/HTTP,例如 Elasticsearch(一个流行的开源分布式搜索引擎)和 Etcd(一个被许多项目使用的分布式键值存储,包括 Kubernetes),它们在面向客户端的 API 中使用 JSON/HTTP,同时在节点间通信时采用自己的二进制协议来提高性能。
Go 语言在其标准库中提供了出色的 API,用于构建 HTTP 服务器和处理 JSON,这使得它非常适合构建 JSON/HTTP Web 服务。
2. 项目搭建
首先,我们需要为项目代码创建一个目录。由于使用的是 Go 1.13+,可以利用模块功能,无需将代码放在 GOPATH 下。以下是设置项目模块的步骤:
1. 打开终端,在你喜欢的代码存放位置执行以下命令:
$ mkdir proglog
$ cd proglog
$ go mod init github.com/travisjeffery/proglog
- 请将
travisjeffery
替换为你自己的 GitHub 用户名,或者如果你使用的是 Bitbuc