一、简单路由配置实现get
路由文件:
package routers import ( "github.com/astaxie/beego" "mypro/controllers" ) func init() { beego.Router("/", &controllers.MainController{}) beego.Router("/collection", &controllers.CollectionController{}) beego.Router("/getmovieinfo/?:id/?:name", &controllers.GetMovieInfoController{}) }
控制器文件
package controllers import ( "github.com/astaxie/beego" ) type GetMovieInfoController struct { beego.Controller } func (c *GetMovieInfoController) Get() { id := c.GetString(":id") name := c.GetString(":name") id2 := c.Ctx.Input.Param(":id") name2 := c.Ctx.Input.Param(":name") c.Ctx.WriteString("第一种id:" + id + "第一种name:" + name + "第二种id:" + id2 + "第二种name:" + name2 ) c.TplName = "index.tpl" }
二、简单路由配置实现post(json)
路由文件
package routers import ( "github.com/astaxie/beego" "mypro/controllers" ) func init() { beego.Router("/", &controllers.MainController{}) beego.Router("/collection", &controllers.CollectionController{}) beego.Router("/getmovieinfo/?:id/?:name", &controllers.GetMovieInfoController{}) beego.Router("/postmovieinfo", &controllers.GetMovieInfoController{}) //post }
控制器文件
package controllers import ( "encoding/json" "fmt" "github.com/astaxie/beego" ) type GetMovieInfoController struct { beego.Controller } type MovieInfo struct { Id string `json:"id"` // 注意首字母大写 Name string `json:"name"` // 并且写明与json字段的映射关系,否则Unmarshal函数不好用 } func (c *GetMovieInfoController) Post() { var MovieInfo_obj MovieInfo body := c.Ctx.Input.RequestBody //这是request的body 的json二进制数据 fmt.Println(body) json.Unmarshal(body, &MovieInfo_obj) //解析二进制json,把结果放进MovieInfo_obj中 fmt.Println(MovieInfo_obj) c.Data["json"] = map[string]interface{}{"result": MovieInfo_obj, "msg": "获取成功","code":"200"} // 设置返回值 c.ServeJSON() // 返回json数据 }
结果展示