天天看點

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 微架構 網站 開源項目介紹

繼續閱讀