0

Go-restful 是一个很好且易于使用的 Go RESTful 风格框架,但这里有一些我想知道的事情(这只是一段代码):


func main() {
    service := new(restful.WebService)

    service.Route(
    service.GET("/{user-id}").To(FindUser).
    Returns(200, "hello", noMessageValue).
    Returns(500, "internal error", noMessageValue))
    restful.Add(service)
    http.ListenAndServe(":8080", nil)
} 

这段代码可以很好地工作。注意最后一行http.ListenAndServe(":8080", nil),它没有将任何处理程序传递给 ListenAndServe 方法(而是传递一个 nil 值),只是传递端口字符串。有谁知道 go-restful 如何实现处理程序绑定?

4

1 回答 1

0

nil作为处理程序传递是 Go 中的常见做法。正如规格所说

Handler 通常为 nil,在这种情况下使用 DefaultServeMux。

DefaultServeMux只是一个方便的全局变量http。所以,go-restful 只是默认使用它

于 2017-03-27T06:23:17.850 回答