Beego 框架学习笔记 03 | Put、Delete

Beego 框架学习笔记 03:Put、Delete

一、Put

修改 goods.go:

package controllers

import (
	"github.com/astaxie/beego"
)

type GoodsController struct {  // 首字母要大写
	beego.Controller
}

func (c *GoodsController) Get() {  // get
	c.Data["title"] = "你好beego"
	c.TplName = "goods.tpl"
}

func (c *GoodsController) DoAdd() {  // post
	c.Ctx.WriteString("执行增加操作")
}

func (c *GoodsController) DoEdit() {  // put
	c.Ctx.WriteString("执行修改操作")
}

func (c *GoodsController) DoDelete() {  // delete
	c.Ctx.WriteString("执行删除操作")
}

在 router.go 中添加路由:

package routers

import (
	"beegodemo/controllers"
	"github.com/astaxie/beego"
)

func init() {
    beego.Router("/", &controllers.MainController{})

	beego.Router("/article", &controllers.ArticleController{})  // 访问 Get 方法
	beego.Router("/article/add", &controllers.ArticleController{}, "get:AddArticle")  // 访问自定义方法
	beego.Router("/article/edit", &controllers.ArticleController{}, "get:EditArticle")  // 结构体地址

	beego.Router("/user", &controllers.UserController{})
	beego.Router("/user/add", &controllers.UserController{}, "get:AddUser")  // 结构体地址
	beego.Router("/user/doAdd", &controllers.UserController{}, "post:DoAddUser")
	beego.Router("/user/edit", &controllers.UserController{}, "get:EditUser")  // 结构体地址
	beego.Router("/user/doEdit", &controllers.UserController{}, "post:DoEditUser")
	beego.Router("/user/getUser", &controllers.UserController{}, "get:GetUser")  // 首字母大写

	beego.Router("/goods", &controllers.GoodsController{})
	beego.Router("/goods/add", &controllers.GoodsController{}, "post:DoAdd")
	beego.Router("/goods/edit", &controllers.GoodsController{}, "put:DoEdit")
	beego.Router("/goods/delete", &controllers.GoodsController{}, "delete:DoDelete")

}

使用 Postman 来测试接口:

二、Delete

goods.go:

package controllers

import (
	"github.com/astaxie/beego"
	"strconv"
)

type GoodsController struct {  // 首字母要大写
	beego.Controller
}

func (c *GoodsController) Get() {  // get
	c.Data["title"] = "你好beego"
	c.TplName = "goods.tpl"
}

func (c *GoodsController) DoAdd() {  // post
	c.Ctx.WriteString("执行增加操作")
}

func (c *GoodsController) DoEdit() {  // put
	title := c.GetString("title")
	c.Ctx.WriteString("执行修改操作--" + title)
}

func (c *GoodsController) DoDelete() {  // delete
	id, err := c.GetInt("id")
	if err != nil {
		c.Ctx.WriteString("参数错误")
	}
	c.Ctx.WriteString("执行删除操作--" + strconv.Itoa(id))
}

router.go:

package routers

import (
	"beegodemo/controllers"
	"github.com/astaxie/beego"
)

func init() {
    beego.Router("/", &controllers.MainController{})

	beego.Router("/article", &controllers.ArticleController{})  // 访问 Get 方法
	beego.Router("/article/add", &controllers.ArticleController{}, "get:AddArticle")  // 访问自定义方法
	beego.Router("/article/edit", &controllers.ArticleController{}, "get:EditArticle")  // 结构体地址

	beego.Router("/user", &controllers.UserController{})
	beego.Router("/user/add", &controllers.UserController{}, "get:AddUser")  // 结构体地址
	beego.Router("/user/doAdd", &controllers.UserController{}, "post:DoAddUser")
	beego.Router("/user/edit", &controllers.UserController{}, "get:EditUser")  // 结构体地址
	beego.Router("/user/doEdit", &controllers.UserController{}, "post:DoEditUser")
	beego.Router("/user/getUser", &controllers.UserController{}, "get:GetUser")  // 首字母大写

	beego.Router("/goods", &controllers.GoodsController{})
	beego.Router("/goods/add", &controllers.GoodsController{}, "post:DoAdd")
	beego.Router("/goods/edit", &controllers.GoodsController{}, "put:DoEdit")
	beego.Router("/goods/delete", &controllers.GoodsController{}, "delete:DoDelete")

}

在 Postman 中在 Body 中输入 Key 和 Value,点击 Send,可以看到:

同样的,edit 也是:

三、参考教程

Golang 教程 P54

posted @ 2020-12-16 22:12  Wonz  阅读(211)  评论(0)    收藏  举报