Beego学习-02 beego.Router与namespace路由

大兔子大兔子 提交于 2020-02-26 12:09:01

beego.Router是RESTful Controller 路由

//见官网:https://beego.me/docs/mvc/controller/router.md

namespace路由

自动化路由才有了namespace来进行设计,

而且注意两点,第一目前只支持namespace的路由支持自动化文档,

第二只支持NSNamespace和NSInclude解析,而且是只能两个层级

eg.

func init() {

//使用beego.NewNamespace创建一个ns的变量,

//这个变量里面其实就是存储了一棵路由树,我们可以把这棵树加到其他任意已经存在的树中去

    ns := beego.NewNamespace("/v1",

        beego.NSNamespace("/object",

//调用了beego.NSInclude来进行注解路由的引入

            beego.NSInclude(

                &controllers.ObjectController{},

            ),

        ),

        beego.NSNamespace("/user",

            beego.NSInclude(

                &controllers.UserController{},

            ),

        ),

    )

    beego.AddNamespace(ns)

}

那么在beego里面定义了如下的方法支持返回这个函数类型:

NSCond(cond namespaceCond) innnerNamespace

NSBefore(filiterList ...FilterFunc) innnerNamespace

NSAfter(filiterList ...FilterFunc) innnerNamespace

NSInclude(cList …ControllerInterface) innnerNamespace

NSRouter(rootpath string, c ControllerInterface, mappingMethods …string) innnerNamespace

NSGet(rootpath string, f FilterFunc) innnerNamespace

NSPost(rootpath string, f FilterFunc) innnerNamespace

NSDelete(rootpath string, f FilterFunc) innnerNamespace

NSPut(rootpath string, f FilterFunc) innnerNamespace

NSHead(rootpath string, f FilterFunc) innnerNamespace

NSOptions(rootpath string, f FilterFunc) innnerNamespace

NSPatch(rootpath string, f FilterFunc) innnerNamespace

NSAny(rootpath string, f FilterFunc) innnerNamespace

NSHandler(rootpath string, h http.Handler) innnerNamespace

NSAutoRouter(c ControllerInterface) innnerNamespace

NSAutoPrefix(prefix string, c ControllerInterface) innnerNamespace

NSNamespace(prefix string, params …innnerNamespace) innnerNamespace

因此我们可以在NewNamespace这个函数的第二个参数列表中使用上面的任意函数作为参数调用

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!