Golang入門教程(十一)beego 框架之RESTful Controller 路由


官方文檔:https://beego.me/docs/mvc/controller/router.md

  什么是路由設置呢?前面介紹的 MVC 結構執行時,介紹過 beego 存在三種方式的路由:固定路由、正則路由、自動路由,接下來詳細的講解如何使用這三種路由。

  在介紹這三種 beego 的路由實現之前先介紹 RESTful,我們知道 RESTful 是一種目前 API 開發中廣泛采用的形式,beego 默認就是支持這樣的請求方法,也就是用戶 Get 請求就執行 Get 方法,Post 請求就執行 Post 方法。因此默認的路由是這樣 RESTful 的請求方式。

這里寫兩個控制器base.go 和mian.go

base.go

package controllers

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

type BaseController struct {
	beego.Controller
}

func (this *BaseController) Get() {
	this.Data["Website"] = "beego.me"
	this.Data["Email"] = "astaxie@gmail.com"
	this.TplName = "main/index.html"
}

func (this *BaseController) Post() {
	this.Ctx.WriteString("This is Post request this") // echo
}

main.go

package controllers

type MainController struct {
	BaseController
}

上面的代碼顯示首先我們聲明了一個控制器 BaseController,這個控制器里面內嵌了 beego.Controller,這就是 Go 的嵌入方式,也就是 BaseController 自動擁有了所有 beego.Controller 的方法。同時控制器 MainController,里面內嵌了 BaseController,這也就是 MainController 自動擁有了所有 BaseController 的方法(新增的Get() 和Post() 方法)

配置路由 router.go

package routers

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

func init() {
	// GET 請求
	beego.Router("/", &controllers.MainController{}, "get:Get")

	// POST 請求 http://127.0.0.1:8080/api/list
	beego.Router("/api/list",&controllers.MainController{},"post:Post")
}

說明:使用GET 請求方式請求Get() 方法,同理使用POST 請求方式請求Post() 方法。如果使用Get請求方式去請求Post()方法,則會提示(匹配不上):

Web頁面請求結果

使用PostMan 模擬Post請求

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM