找了好多博客,发现都是beego
官方文档的复制粘贴,实在是难看。。所以把自己的实验结果在此记录一下(持续更新…)
router
的设置
router.go使用的是Namespace的模式,如下:
...
beego.NSNamespace("/assistant",
beego.NSInclude(
&controllers.AssistantController{},
),
),
...
controller中的router设置示例:
// GetOne ...
// @Title Get One
// @Description get assistant by id
// @Param assistant_id path int true "assistant id"
// @Param start path int true "limit start"
// @Param end path int true "limit end"
// @Success 200 {object} models.Assistant
// @Failure 403 :id is empty
// @router /get_one/:assistant_id/:start/:end [get]
func (c *AssistantController) GetOne() {
1、@router这一行交代了url的末端及参数及请求方法
2、共有三个@Param,分别对三个参数进行说明
3、@Param中的“path”表示参数是 /assistant_id/start/end 这种形式的,如果是“query”就表示是 ?assistant_id=x&start=xx&end=xxx 这种形式的
4、controller前面的URLMapping()可以不设置,不设置会自动读取@router注解来生成路由表
5、commentsRouter_controller.go只有在dev模式下才会自动生成,所以要注意配置文件中的运行模式(runmode = dev)
6、注意要保持URL的完整性,参数定义了几个就要传递几个,不能省略
7、接收参数的时候注意顺序,c.Ctx.Input.Param(":assistant_id")接收第一个参数,c.Ctx.Input.Param(":start")接受第二个参数,以此类推..
8、后续补充