golang Beego 学习

官方网站:  https://beego.me/docs/advantage/docs.md

安装:  

go get github.com/astaxie/beego
go get github.com/beego/bee

  使用工具bee构建项目

bee new myproduct

beego是一个MVC架构,

                              M   --- model

                              C   ---  Controller

                              V    ---  View

beego  API    ---->   路由   ----->  Controller  -----> View/Model 这只是一个大概的过程

beego路由规则:

              1.基础路由:                           

                      beego.Router("/api/:id", &controller{})
                     这个路由可以匹配到  /api/
                                                      /api/123

                    beego.Router("/api/:id!", &controller{})
                    匹配:  /api/3233  :id=3233
                             但所不能匹配/api/

                   beego.Router("/api/:id([0-9]+)", &controller{})
                   自定义正则匹配:  /api/124   :id=123

                  beego.Router("/download/*.*", &controller{})
                  匹配: /download/file/api.xml   :path= file/api  :ext=xml    

                 beego.Router("/download/*", &controller{})
                 匹配: /download/file/api.xml   :splat= file/api.xml

                 beego.Router("/api/:all", &controller{})
                 匹配: /api/path/to/123.html :all= path/to/123.html

                 beego.Router("/api/:id:int", &controller{})框架实现正则
                 beego.Router("/api/:id:string", &controller{})框架实现正则

           2. 印射路由:                           

   beego.Router("/api/list", &controller{}, "*:ListFood")所有方法,对应ListFood
   beego.Router("/api/create", &controller{}, "post:ListFood")
   beego.Router("/api", &controller{}, "post,get:ListFood")
   beego.Router("/api", &controller{}, "post:ListPost;get:ListGet")    

           3. 自动化路由:               

beego.AutoRouter(&controller.ObjectController)

                       /object/login  调用ObjectController中的Login
                         /object/logout  调用ObjectController中的Logout
                      注意: /object/LOGIN 它会先转化成小写,也能匹配到。
                     其他的都解析为参数保存在this.Ctx.Input.Param
                 ctx.Output.Body([]byte("notAllowed"))
                 ctx.Input.Domain()    

namespace:    

ns := beego.NewNamespace("/v1").Filter("before", auth).Get("/notallowed", func(ctx *context.Context){
            
        })

获取beego配置文件的数据

beego.AppConfig.Strings("demo::peers") [one two three]
beego.AppConfig.String("demo::key")
beego.AppConfig.Int("mysql")

                                              

猜你喜欢

转载自blog.csdn.net/weixin_39594447/article/details/87925579