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数据
}

结果展示

 

原文地址:https://www.cnblogs.com/wt645631686/p/9705304.html