Martini 是一个非常新的 Go 语言的 Web 框架,使用 Go 的 net/http 接口开发,类似 [Sinatra](http://www.oschina.net/p/sinatra) 或者 [Flask](http://www.oschina.net/p/flask) 之类的框架,你可使用自己的 DB 层、会话管理和模板。
特性:
* 使用非常简单
* 无侵入设计
* 可与其他 Go 的包配合工作
* 超棒的路径匹配和路由
* 模块化设计,可轻松添加工具
* 大量很好的处理器和中间件
* 很棒的开箱即用特性
* **完全兼容 [http.HandlerFunc](http://godoc.org/net/http#HandlerFunc) 接口.**
示例代码:
<pre class="brush:cpp; toolbar: true; auto-links: false;">package main
import "github.com/codegangsta/martini"
func main() {
m := martini.Classic()
m.Get("/", func() string {
return "Hello world!"
})
m.Run()
}
</pre>
请求处理器:
<pre class="brush:cpp; toolbar: true; auto-links: false;">m.Get("/", func() {
println("hello world")
})
m.Get("/", func(res http.ResponseWriter, req *http.Request) { // res and req are injected by Martini
res.WriteHeader(200) // HTTP 200
})</pre>