拥抱 Go 的 HTTP 工具
type Handler interface { ServeHTTP(ResponseWriter, *Request) }为了能够处理HTTP请求,你的类型只需要实现这一个方法。该方法从给定的请求中读取请求信息,并写入一个响应到给定的ResponseWriter。看起来似乎很简单,对不对?
补充它,但不能取代它
然而,在此基础之上的建立抽象时,有些东西弄错了。举个例子,Mango,被它的作者描述为“一个模块化的Go语言Web应用程序框架,灵感来自Rack和PEP333”。
这是一个Mango应用程序的样子:
func Hello(env mango.Env) (mango.Status, mango.Headers, mango.Body) { return 200, mango.Headers{}, mango.Body("Hello World!") }
type Context struct { Request *http.Request Params map[string]string Server *Server http.ResponseWriter } // ... func hello(ctx *web.Context, val string) string { return "hello " + val }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。