(golang1.2.1)
golang の martini をちょいと触ってみたいなと思ってたのでやってみた。
元ネタ
『SimpleHTTPServerの次の一歩としてFlaskを使う - Qiita』
下準備
ライブラリなどインストール
go get github.com/go-martini/martini go get github.com/martini-contrib/render
ファイル
server.go
package main import ( "fmt" "io/ioutil" "net/http" "github.com/go-martini/martini" "github.com/martini-contrib/render" ) func hello_world() string { return "Hello world!" } func send_foo(params martini.Params, r render.Render) { r.HTML(200, params["filename"], "world") } func save(params martini.Params, request *http.Request) { // curl -s -i -X POST -d 'data=foobarbaz' "http://localhost:3000/api/save/bar.txt" filename := params["filename"] data := request.FormValue("data") fmt.Println(filename) fmt.Println(data) ioutil.WriteFile(filename, []byte(data), 0644) } func main() { m := martini.Classic() m.Use(render.Renderer(render.Options{ Directory: "static", Extensions: []string{".html"}, })) m.Get("/", hello_world) m.Get("/collecting/:filename", send_foo) m.Post("/api/save/:filename", save) m.Run() }
実行
$ go run server.go
何か違う気がしなくもないが取りあえず動いた