bee api 初始化项目时传 -conn 非必须但强烈建议,不传则生成空 models 和默认控制器,需手写全部 crud;传入 mysql 连接字符串可自动生成 model、controller 及 router 映射。

bee api 是启动 Beego RESTful API 项目的最直接方式,它生成的结构天然适配 RESTful 路由约定,无需手动拼接 GET/POST 分支逻辑或写重复的 if r.Method == "PUT" 判断。
用 bee api 初始化项目时必须传 -conn 吗?
不是必须,但强烈建议传。不传 -conn 会生成空 models/ 和默认 controllers/default.go,所有 CRUD 都得手写;传了则自动根据表结构生成完整 Model、Controller 和 Router 映射。
- MySQL 连接格式示例:
-conn="root:pass@tcp(127.0.0.1:3306)/mydb?charset=utf8mb4" - 如果数据库驱动未安装,
bee api会报错:driver: unknown driver "mysql" (forgotten import?),需提前执行go get github.com/go-sql-driver/mysql - Beego v2 默认使用
github.com/beego/beego/v2,老版本(v1)的github.com/astaxie/beego已归档,新项目请避免混用
beego.Router 中的 RESTful 路由写法容易出错
Beego 不强制要求用 RESTController,但若想让一个 Controller 自动响应不同 HTTP 方法,必须显式绑定方法名——漏写或拼错会导致 404 或静默忽略请求。
- 正确写法:
beego.Router("/api/users/:id", &controllers.UserController{}, "get:GetUser;put:UpdateUser;delete:DeleteUser") - 常见错误:
"get:getuser"(大小写敏感,方法名首字母必须大写) - 别用
beego.RESTRouter:该函数已废弃,v2 中不再支持,强行调用会编译失败 - 路径参数
:id在 Controller 方法中通过c.Ctx.Input.Param(":id")获取,不是c.GetString("id")
API 文档自动生成依赖 EnableDocs = true 和 bee run -gendoc=true
Beego 内置文档功能不是开箱即用,需同时满足配置项、构建参数和代码注释三者,缺一不可。
- 确认
conf/app.conf中有:EnableDocs = true,且autorender = false(API 服务必须关掉模板渲染) - 启动命令必须带
-gendoc=true,例如:bee run -gendoc=true -downdoc=true - Controller 方法上方需加 Swagger 注释块,如:
// @Title GetUser、// @Param id path string true "user id" - 访问地址是
http://localhost:8080/docs,不是/swagger——后者需额外集成 Swagger UI 静态资源
Beego ORM 查询结果不返回总条数是个隐藏坑
Beego v2 的 o.QueryTable("user").Filter("status", 1).All(&users) 只填充数据,不附带分页总数。前端做“第 N 页共 M 页”时,必须额外查一次 count,否则会误判数据边界。
- 安全写法:先
o.QueryTable("user").Filter("status", 1).Count(),再All() - 别依赖
GetAll()方法:该方法在 v2 中已被移除,旧教程里出现的GetAll(..., &count)是 v1 特性,v2 不兼容 - 如果用 MySQL,可考虑改用原生 SQL +
QueryRow合并 count 和 list,减少两次 round-trip
Beego 的 RESTful 支持很薄——它不自动注入 Content-Type: application/json,也不拦截非 JSON 请求体。你得在每个成功返回前手动写 c.Data["json"] = result; c.ServeJSON(),漏掉这句,前端收到的就是纯文本或 500 错误。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











