go-martini基礎入門

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Martini架構是使用Go語言作為開發語言的一個強力的快速構建模組化web應用與服務的開發架構。Martini是一個專門用來處理Web相關內容的架構,其並沒有內建有關ORM或詳細的分層內容。所以當我們使用Martini作為我們的開發架構時,我們還需要選取適合的ORM等其他包。昨天大象哥哥看了下,感覺還是蠻屌蠻簡單的,不囉嗦上代碼。

package mainimport ("github.com/astaxie/beego/context""github.com/go-martini/martini""github.com/martini-contrib/render""net/http""fmt")//定義一個自己的中介軟體,這裡將beego的context注入func myContext() martini.Handler {return func(res http.ResponseWriter, req *http.Request, c martini.Context) {ctx := context.Context{Request: req, ResponseWriter: res}ctx.Input = context.NewInput(req)ctx.Output = context.NewOutput()c.Map(ctx)}}func main() {m := martini.Classic()m.Use(render.Renderer()) //注入中介軟體(渲染JSON和HTML模板的處理器中介軟體)m.Use(myContext())       //注入自己寫的中介軟體m.Use(func(c martini.Context) {fmt.Println("before a request")c.Next() //Next方法之後最後處理fmt.Println("after a request")})//普通的GET方式路由m.Get("/", func() string {return "hello world!"})//路由分組m.Group("/books", func(r martini.Router) {r.Get("/list", getBooks)r.Post("/add", getBooks)r.Delete("/delete", getBooks)})//我們以中介軟體的方式來注入一個Handlerm.Use(MyHeader(m))m.RunOnAddr(":8080") //運行程式監聽連接埠}func getBooks() string {return "books"}//中介軟體Handlerfunc MyHeader(m *martini.ClassicMartini) martini.Handler {return func() {m.Group("/app", func(r martini.Router) {my := new(App)r.Get("/index", my.Index)r.Get("/test/:aa", my.Test)})}}//應用的處理type App struct{}func (this *App) Index(r render.Render, ctx context.Context) {fmt.Println(ctx.Input.Query("action"))ctx.WriteString("你好世界")}func (this *App) Test(r render.Render, params martini.Params, req *http.Request) {fmt.Println(params)parm := make(map[string]interface{})if t, ok := params["aa"]; ok {parm["aa"] = t}req.ParseForm()fmt.Println(parm, req.Form)r.Text(200, "----")}





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.