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

Wonz · · 421 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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 来测试接口:

image

二、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,可以看到:

image

同样的,edit 也是:

Snipaste_2020-11-18_15-26-15.png

三、参考教程

Golang 教程 P54


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Wonz

查看原文:Beego 框架学习笔记 03 | Put、Delete

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

421 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传