一,创建简单接口
1.routers.routers.go
routers.go
package routers
import (
"testapi/controllers"
beego "github.com/beego/beego/v2/server/web"
)
func init() {
ns := beego.NewNamespace("/v1",
//路由 /v1/test
beego.NSNamespace("/test",
beego.NSInclude(
&controllers.TestController{},
),
),
beego.NSNamespace("/test",
// 路由: /v1/test/test
beego.NSRouter("/test",
&controllers.TestTestController{}),
),
)
//注册路由器
beego.AddNamespace(ns)
}
2.controllers文件下建立test.go和testtest.go(名字自取)
test.go
package controllers
import (
beego "github.com/beego/beego/v2/server/web"
)
//必须要创建
type TestController struct {
beego.Controller
}
//下面注释必须要写
// @router / [get]
func (o *TestController) Get() {
o.Data["json"] = map[string]string{
"code": "0",
"message": "成功",
}
o.ServeJSON()
}
testtest.go
package controllers
import beego "github.com/beego/beego/v2/server/web"
//必须要创建
type TestTestController struct {
beego.Controller
}
//下面注释必须要写
// @router / [get]
func (o *TestTestController) Get() {
o.Data["json"] = map[string]string{
"code": "0",
"message": "失败",
}
o.ServeJSON()
}
3.运行bee run -gendoc=true -downdoc=true之后,即可正常访问。
二,运行完之后,不能正常访问,报错404,排查方向
1.注意conf.app.conf文件,必须是dev模式下
2.查看router下面有无commentsRouter前缀文件
无文件情况,查看controllers文件夹下面的Controller的相关函数有没有写注释路由,路由格式是否正确
有文件情况,路由注册没有生效,可能是因为beego版本的原因,可以通过命令生成路由文件
bee generate routers
3.按第二个操作之后,有commentsRouter前缀文件,但是还是没有生效,可以把commentsRouter前缀文件删掉重新生成,尝试一遍
4.以上都尝试了,最后可以尝试清空浏览器或者强制刷新