beego学习笔记
标签:beego 学习笔记
参考资料:
推荐使用postman进行调试,这是一款很好地API开发工具,能够比较方便地测试API(以各种参数加在body中,省去了自己写程序的步骤)。
- beego搭建api服务,这是go语言中文网的,例子很不错,但是不够清楚。
- beego+swagger快速上手,非常好的教程,很实用,在10分钟之内绝对可以完成一个简单的demo。作者前面还写过一篇swagger上手,可以看一下。关键点在于beego的API自动化文档
快速入门
架构概述
beego是MVC结构,其中model主要负责数据库(逐层抽象),view层为模版,controller层作路由。
极速上手demo
要求:提前安装好了go(或者docker跑golang镜像)
安装工具:go get github.com/astaxie/beego
和go get github.com/beego/bee
创建api项目:bee api apiTest
自动下载swagger文件,自动化文档,即可在本地浏览默认API:http://localhost:8080/swagger/
。bee run -gendoc=true -downdoc=true
API目录
├── conf
│ └── app.conf
├── controllers
│ └── object.go
│ └── user.go
├── docs
│ └── doc.go
├── main.go
├── models
│ └── object.go
│ └── user.go
├── routers
│ └── router.go
└── tests
└── default_test.go
剩下的就是阅读controllers、models文件下的go文件源代码
最终效果
让beego运行Https的配置
appname = apiproject
httpport = 8080
runmode = dev
autorender = false
copyrequestbody = true
EnableDocs = true
EnableHTTPS = true
HTTPSCertFile = "cert.crt"
HTTPSKeyFile = "key.key"
sqlconn =
根目录为main.go所在目录,把CA证书换成自己的即可使用。具体的配置信息参考这里
核心部分
controller设计
路由设置
beego存在三种方式的路由:固定路由、正则路由和自动路由。
- 固定路由:就是全匹配的路由,一个路由对应一个控制器,然后根据用户请求方法不同去请求控制器中的对应的方法。
- 正则路由:为了用户更方便的设置路由,beego参考了sinatra的路由实现,支持多种方式的路由。
- 自动路由:首先需要把路由的控制器注册到自动路由中,beego会通