构建 JSON over HTTP 服务器与使用 Protocol Buffers 结构化数据
1. 构建 JSON over HTTP 服务器
在构建服务器时,我们要创建一个 JSON/HTTP 网络服务器。Go 网络服务器为每个 API 端点配备一个 net/http HandlerFunc(ResponseWriter, *Request)
函数。我们的 API 有两个端点:用于写入日志的 Produce
和用于读取日志的 Consume
。
构建 JSON/HTTP Go 服务器时,每个处理程序包含三个步骤:
1. 将请求的 JSON 主体反序列化到结构体中。
2. 使用请求运行该端点的逻辑以获得结果。
3. 将结果序列化并写入响应。
若处理程序变得过于复杂,应将代码移出,把请求和响应处理移到 HTTP 中间件中,将业务逻辑移到更底层。
以下是创建 HTTP 服务器的步骤:
1. 在服务器目录内创建一个名为 http.go
的文件,代码如下:
package server
import (
"encoding/json"
"net/http"
"github.com/gorilla/mux"
)
func NewHTTPServer(addr string) *http.Server {
httpsrv := newHTTPServer()
r := mux.NewRouter