beego生成api工程

生成beego工程之前需要先配置好beego与bee环境

生成beego工程

本工程采用api的形式,不需要界面,所以使用bee api的方式生成工程,bee工具非常好用,可以用以下方式根据数据库的结构自动生成工程
bee api appName -driver=mysql -conn="root:password@tcp(localhost:3306)/test" ,其中appName是工程名称,-driver=mysql是指生成工程的数据库是mysql-conn="root:password@tcp(localhost:3306)/test"mysql连接信息。

postgres数据库生成:
bee api data_sync -driver=postgres -conn="postgres://postgres:postgres@127.0.0.1:5432/postgres?sslmode=disable"

根据特定数据表快速生成代码

bee generate appcode -tables="tablename1,tablename2" -driver=mysql -conn="root:password@tcp(127.0.0.1:3306)/test" -level=3,其中level为生成代码的级别
可通过help命令查看具体用法:

bee help generate
USAGE
  bee generate [command]
OPTIONS
  -conn  Connection string used by the SQLDriver to connect to a database instance.
  -ddl  Generate DDL Migration
  -driver  Database SQLDriver. Either mysql, postgres or sqlite.
  -fields  List of table Fields.
  -level  Either 1, 2 or 3. i.e. 1=models; 2=models and controllers; 3=models, controllers and routers.
  -tables  List of table names separated by a comma.
DESCRIPTION
  ▶ To scaffold out your entire application:
     $ bee generate scaffold [scaffoldname] [-fields="title:string,body:text"] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]
  ▶ To generate a Model based on fields:
     $ bee generate model [modelname] [-fields="name:type"]
  ▶ To generate a controller:
     $ bee generate controller [controllerfile]
  ▶ To generate a CRUD view:
     $ bee generate view [viewpath]
  ▶ To generate a migration file for making database schema updates:
     $ bee generate migration [migrationfile] [-fields="name:type"]
  ▶ To generate swagger doc file:
     $ bee generate docs
  ▶ To generate a test case:
     $ bee generate test [routerfile]
  ▶ To generate appcode based on an existing database:
     $ bee generate appcode [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-level=3]

进程内监控

beego提供了应用信息的监控和展示,可以查看实时信息比如qps,健康状况,程序性能相关(goroutine,gc,cpu等),可以查看静态信息比如路由配置,conf配置信息,过滤器信息,还可以查看和触发任务。
进程监控默认是关闭的,可以通过简单的配置中打开,很方便:

EnableAdmin = true
AdminHttpAddr = 0.0.0.0 #默认监听地址是localhost
AdminHttpPort = 8088

自动化文档

beego通过swagger和内部的注释解析能够实现自动文档的效果,使用方法:

  1. routers/router.go中路由只能使用namespace+Include的写法,而且只支持二级解析,一级版本号,二级分别表示应用模块。
  2. routers/router.go文件中设置全局的应用信息。注意,必须写在文件顶部。
  3. 注释的格式(每个字段的含义可以参照Auto Docs):
 // @Title login
 // @Description Logs user into the system
 // @Param   username        query   string  true        "The username for login"
 // @Param   password        query   string  true        "The password for login"
 // @Success 200 {string} login success
 // @Failure 403 user not exist
 // @router /login [get]
 func (u *UserController) Login() {
     username := u.GetString("username")
     password := u.GetString("password")
     if models.Login(username, password) {
         u.Data["json"] = "login success"
     } else {
         u.Data["json"] = "user not exist"
     }
     u.ServeJSON()
 }

4.在配置文件中打开自动文档配置:
EnableDocs = true
5.启动时添加自动文档参数:
bee run -gendoc=true -downdoc=true
满足以上配置,beego会自动解析控制器中的注释,启动swagger服务,并在/docs接口上提供已生成好的json字串。
访问swagger服务并在swagger中访问/docs接口,即可看到接口的文档,同时也可以对接口进行测试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容