goland_beego框架學習--api實現api
完成一項api實現的流程mvc
(1)beego框架的router層裏面註冊路由框架
爲了用戶更加方便的路由設置,beego 參考了 sinatra 的路由實現,支持多種方式的路由:函數
beego.Router(「/api/?:id」, &controllers.RController{})post
默認匹配 //例如對於URL」/api/123」能夠匹配成功,此時變量」:id」值爲」123」學習
beego.Router(「/api/:id」, &controllers.RController{})this
默認匹配 //例如對於URL」/api/123」能夠匹配成功,此時變量」:id」值爲」123」,但URL」/api/「匹配失敗spa
beego.Router(「/api/:id([0-9]+)「, &controllers.RController{})code
自定義正則匹配 //例如對於URL」/api/123」能夠匹配成功,此時變量」:id」值爲」123」router
beego.Router(「/user/:username([\\w]+)「, &controllers.RController{})
正則字符串匹配 //例如對於URL」/user/astaxie」能夠匹配成功,此時變量」:username」值爲」astaxie」
能夠在 Controller 中經過以下方式獲取上面的變量:
this.Ctx.Input.Param(":id") this.Ctx.Input.Param(":username") this.Ctx.Input.Param(":splat") this.Ctx.Input.Param(":path") this.Ctx.Input.Param(":ext")
還有不少提供自定義路由的方法,這裏僅僅提供這兩種基本的,已經能夠知足使用,還想知道詳細的部分,能夠去查閱beego的官方文檔:https://beego.me/docs/mvc/controller/router.md
(2)controller裏面實現自定義的controller
a)組合beego的Controller
b)實現符合http協議的函數
這兩個函數的返回值Get()函數是返回一個index.tpl代碼
而post是返回變量user_name的值,this.Ctx.Input.Param()函數提取值
而this.Ctx.Output.Body([]byte())函數在網頁上直接輸出
這樣就完成了api的實現