Goji —— 基于 Go 语言的微型 web 框架

Goji 是一个基于 Go 的微型 web 框架,其设计受到了 Sinatra 的启发。

Goji —— 基于 Go 语言的微型 web 框架

示例

一个简单的 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 则实现了任意上下文对象。


主页

goji.io

golang微框架网站开源项目介绍

上一篇:LeetCode 面试常用小技巧,通过二进制获得所有子集


下一篇:AliOS Things网络适配框架 - SAL