func BindController(svr *web.Server, path string, ctrl Controller) { // Create svr.Post(path, func(wctx *web.Context) { ctx := NewContext(wctx) body, err := ctx.readBody() if err != nil { ctx.writeError(err) return } log.Println("body: ", body) id := <-RandStr ret, err := ctrl.Create(id, body) if err != nil { ctx.writeError(err) return } ctx.writeJson(ret) }) // Read svr.Get(path+"/?(.*)", func(wctx *web.Context, id string) { ctx := NewContext(wctx) ret, err := ctrl.Read(id) if err != nil { ctx.writeError(err) return } ctx.writeJson(ret) }) // Update svr.Put(path+"/(.+)", func(wctx *web.Context, id string) { ctx := NewContext(wctx) body, err := ctx.readBody() if err != nil { ctx.writeError(err) return } log.Println("body: ", body) ret, err := ctrl.Update(id, body) if err != nil { ctx.writeError(err) return } // Accept nil responses if ret != nil { ctx.writeJson(ret) } else { ctx.NotModified() } }) // Delete svr.Delete(path+"/(.+)", func(wctx *web.Context, id string) { ctx := NewContext(wctx) err := ctrl.Delete(id) if err != nil { ctx.writeError(err) return } ctx.NotModified() }) }