bee api 是唯一推荐的起点,其他方式会多出 static、views 等冗余目录;需用 bee api myapi 创建纯 api 结构,开启 -gendoc=true 和 autorender=false,并使用 beego.restrouter 注册路由。

bee api 是唯一推荐的起点,其他方式(比如 bee new 或手写结构)会多出 static、views 等 API 项目不需要的目录,徒增维护负担。
用 bee api 创建最小可用API项目
确保 bee 已安装且在 $PATH 中(可通过 bee version 验证),然后执行:
-
bee api myapi—— 生成纯 API 结构,不含模板和静态资源 - 项目自动包含
controllers/user.go、models/user.go、routers/router.go和 Swagger 文档支持开关 - 生成的
main.go已调用beego.Run(),无需额外初始化 - 默认监听
:8080,端口由conf/app.conf中的httpport控制
启动时必须加 -gendoc=true 才能用 Swagger
Beego 的内置文档功能不是默认开启的。不加参数直接 bee run,访问 /swagger/ 会返回 404。
- 首次运行建议:
bee run -gendoc=true -downdoc=true -
-gendoc=true:每次编译时自动生成docs/doc.go,反映当前控制器方法签名 -
-downdoc=true:仅首次需要,自动下载swagger-ui静态文件到swagger目录 - 后续开发中,删掉
-downdoc=true即可,避免重复下载
RESTRouter 注册方式比手写 Router 更安全
RESTful 路由若用 beego.Router 逐条注册(如 GET /users、POST /users),容易漏掉方法或路径拼错;而 beego.RESTRouter 自动绑定标准 HTTP 方法到控制器对应方法名(Get、Post、Put、Delete)。
- 正确写法:
beego.RESTRouter("/api/users", &controllers.UserController{}) - 控制器中必须有首字母大写的
Get、Post等方法,否则对应请求 405 - 注意:Beego v2 要求控制器嵌入
beego.Controller,否则ServeJSON()等方法不可用 - 别在
init()外调用路由注册函数,否则bee run无法识别
关闭 autorender 否则 JSON 响应可能被模板引擎劫持
API 服务不该走视图渲染流程。默认 autorender = true 会让 Beego 尝试查找模板,找不到就 panic,或者意外返回空响应。
- 打开
conf/app.conf,把autorender = true改为autorender = false - 同时确认
copyrequestbody = true,否则c.GetString()、c.ReadJSON()可能读不到 body - 如果用了
c.ServeJSON()却返回空白,第一反应就是检查autorender是否关掉
autorender 默认开启、Swagger 文档需显式触发、RESTRouter 对方法命名敏感——这三个点一旦忽略,就会卡在“服务跑起来了却调不通”的状态,比写逻辑还耗时间。大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











