Go 的两个web 框架推荐

By youbbs at 2015-01-31 16:52:58 • 1088次点击

martini 轻量,推荐
http://martini.codegangsta.io/ 3

https://github.com/go-martini/martini 4

package main

import "github.com/go-martini/martini"

func main() {
  m := martini.Classic()
  m.Get("/", func() string {
    return "Hello world!"
  })
  m.Run()
}

Beego Framework 国产,较重

http://beego.me/ 1

https://github.com/astaxie/beego/ 1

package main

import (
    "github.com/astaxie/beego"
)

type MainController struct {
    beego.Controller
}

func (this *MainController) Get() {
    this.Ctx.WriteString("hello world")
}

func main() {
    beego.Router("/", &MainController{})
    beego.Run()
}

go, web, 框架


这个更快 goji https://github.com/zenazn/goji 3

package main

 import (
         "flag"
         "fmt"
         "github.com/zenazn/goji"
         "github.com/zenazn/goji/web"
         "net/http"
 )

 func Home(w http.ResponseWriter, r *http.Request) {
         w.Write([]byte("Hello, World!"))
 }

 func SayHello(c web.C, w http.ResponseWriter, r *http.Request) {
         // get the name from web.C
         // a request-local context object
         // see https://github.com/zenazn/goji/blob/master/web/web.go
         name := c.URLParams["name"]
         w.Write([]byte(fmt.Sprintf("Hello %s !", name)))
 }

 func main() {
         goji.Get("/", Home)
         goji.Get("/:name", SayHello)

         // goji default port number is 8000
         // change to port number 8080
         // with flag.Set
         flag.Set("bind", ":8080")

         goji.Serve()

 }

youbbs at 2015-06-06 09:29:36
1
登录 后发表评论