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数据
}
复制代码

结果展示

 

 

 

 

posted @   温柔的风  阅读(1156)  评论(0编辑  收藏  举报
编辑推荐:
· 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 让容器管理更轻松!
点击右上角即可分享
微信分享提示