beego自动化文档

beego是什么?

beego是一个快速开发go应用http框架go 语言技术大牛ASTA谢的开源项目。
beego能够用来快速开发APIWeb以及后端服务等各类应用,是一个RESTFul的框架,主要设计灵感来源于tornadosinatraflask这三个框架,结合了Go自己的一些特性(interfacestruct继承等)而设计的。
beego结合swagger就能实现自动化的文档。git

Swagger是什么?

Swagger 是一个规范和一套完整的框架,用于生成描述调用以及可视化 RESTful 风格Web 服务
Swagger的整体目标是使客户端和文件系统服务器以一样的速度来更新,方法,参数和模型紧密集成到服务器端的代码中,容许API始终保持同步。
Swagger 让部署管理和使用API从未如此简单。github

自动文档的好处?

1. 不用手动写文档了,经过注解就能够自动化文档
2. 文档和代码同步更新,代码更新以后不须要再更新文档
3. 浏览器友好
4. 使用Swagger框架能够调试API,在浏览器端能够看到更多的`request`和`response`信息

使用指南

首先安装go:http://www.jianshu.com/p/943870134593
能够使用intelliJ做为go的IDE:[http://www.jianshu.com/p/9438...
也能够使用Atom做用go的IDE:http://www.jianshu.com/p/c1d8cf274ec7flask

安装beego:http://beego.me/quickstart
使用go get安装beego:后端

go get github.com/astaxie/beegoapi

安装bee工具:浏览器

go get github.com/beego/bee服务器

未了方面能够把$GOPATH/bin加入到你的$PATH变量中:app

export PATH=$PATH:$GOPATH/bin框架

建立一个beego项目

使用bee工具能够方便的建立,管理,运行,打包beego项目:函数

bee api beeapi

必须在$GOPATH/src的目录下建立项目。
为该项目指定Swagger目录:

beego.StaticDir["/swagger"] = "swagger"

下载Swagger:https://github.com/beego/swagger
也能够下载最新的Swagger:http://swagger.io/

放到项目的根目录下面,目录名称为swagger,和上面的配置一致。
##路由解析
目前自动化文档的路由规则只支持NewNamespace写法的解析,其余写法函数不会自动解析为文章,就是namespace+Include的写法。并且只支持二级解析,其中一级表示版本号,二级表示应用模块。
如:

ns := beego.NewNamespace("/v1",
        beego.NSNamespace("/object",
            beego.NSInclude(
                &controllers.ObjectController{},
            ),
        ),
        beego.NSNamespace("/user",
            beego.NSInclude(
                &controllers.UserController{},
            ),
        ),
    )
    beego.AddNamespace(ns)

生成文档

在配置文件conf/app.conf中设置

EnableDocs = true

生成docs文件:

bee generate docs

文档的生成在 docs文件的init函数中调用的,所以必须在main中导入docs文件,这样就会调用docs的init函数

_ "beeapi/docs"

运行程序:

bee run watchall true

bee run命令是监控beego的项目文件,经过fsnotify监控文件系统,这样在开发的过程当中能够实时的看到项目修改以后的效果。

打开http://127.0.0.1:8080/swagger/就能够看到自动化文档的界面

swagger

也能够运行下面命令改变docs的端口号:

bee run docs -docport=8888

注解

beego的文档注解包括两种:全局注解和应用注解.
全局注释,必须放在router.go的最顶部,包括:

@APIVersion
    @Title
    @Description
    @Contact
    @TermsOfServiceUrl
    @License
    @LicenseUrl

应用注释,须要放在对应方法的上面,包括:

@title
    @Description
    @Param
    @Success
    @Failure
    @router

测试项目地址:[https://github.com/jjz/beego_...
https://github.com/jjz/beego_...

参考文档:http://beego.me/docs/advantag...

相关文章
相关标签/搜索