goland_beego框架学习--api实现

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的实现

相关文章
相关标签/搜索