示例
一个简单的 Hello World 示例
package main import ( "fmt" "net/http" "github.com/zenazn/goji" "github.com/zenazn/goji/web" ) func hello(c web.C, w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %s!", c.URLParams["name"]) } func main() { goji.Get("/hello/:name", hello) goji.Serve() }
Goji 的代码的 example 目录下包含了一个示例应用
特性
- 兼容 net/http
- URL 模式(同时支持 Sinatra 风格的 /foo/:bar 和 正则表达式)
- 可再配置的中间件栈
- 自动支持 Einhorn、 systemd
- 渐进停止,配合 Einhorn 可实现零下线时间的渐进重载
- Ruby on Rails / jQuery 风格的参数解析
理念
- 简单。 Sinatra 风格,而不是 Rails 风格。没有魔法。
- 可组合的。可与 net/http 组合,可以作为 http.Handler 使用。
- 自由。作者很喜欢 pat。pat 以优雅的方式实现了 Sinatra 风格的路由,但是它不允许程序员在处理请求的过程中使用自己的线程状态。而 Goji 则实现了任意上下文对象。
主页
时间:2014-04-24 22:10
来源:segmentfault
作者:segmentfault
原文链接