Beego基础学习(二)基本的路由设置实现get和post(json)请求
一、简单路由配置实现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数据 }
结果展示
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!