Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
38b083e1
Commit
38b083e1
authored
Jul 09, 2013
by
astaxie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add docs about how to write api application
parent
fece5adc
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
159 additions
and
55 deletions
+159
-55
API.md
docs/zh/API.md
+106
-0
README.md
docs/zh/README.md
+53
-52
default.go
example/beeapi/controllers/default.go
+0
-3
No files found.
docs/zh/API.md
0 → 100644
View file @
38b083e1
# API应用开发入门
Go是非常适合用来开发API应用的,而且我认为也是Go相对于其他动态语言的最大优势应用。beego在开发API应用方面提供了非常强大和快速的工具,方便用户快速的建立API应用原型,专心业务逻辑就行了。
## 快速建立原型
bee快速开发工具提供了一个API应用建立的工具,在gopath/src下的任意目录执行如下命令就可以快速的建立一个API应用:
`bee api beeapi`
## 应用的目录结构
应用的目录结构如下所示:
```
├── conf
│ └── app.conf
├── controllers
│ └── default.go
├── models
│ └── object.go
└── main.go
```
## 源码解析
-
app.conf里面主要针对API的配置如下:
autorender = false //API应用不需要模板渲染,所以关闭自动渲染
copyrequestbody = true //RESTFul应用发送信息的时候是raw body,而不是普通的form表单,所以需要额外的读取body信息
-
main.go文件主要针对RESTFul的路由注册
`beego.RESTRouter("/object", &controllers.ObejctController{})`
这个路由可以匹配如下的规则
<table>
<tr>
<th>
URL
</th>
<th>
HTTP Verb
</th>
<th>
Functionality
</th>
</tr>
<tr>
<td>
/object
</td>
<td>
POST
</td>
<td>
Creating Objects
</td>
</tr>
<tr>
<td>
/object/objectId
</td>
<td>
GET
</td>
<td>
Retrieving Objects
</td>
</tr>
<tr>
<td>
/object/objectId
</td>
<td>
PUT
</td>
<td>
Updating Objects
</td>
</tr>
<tr>
<td>
/object
</td>
<td>
GET
</td>
<td>
Queries
</td>
</tr>
<tr>
<td>
/object/objectId
</td>
<td>
DELETE
</td>
<td>
Deleting Objects
</td>
</tr>
</table>
-
ObejctController实现了对应的方法:
```
type ObejctController struct {
beego.Controller
}
func (this *ObejctController) Post(){
}
func (this *ObejctController) Get(){
}
func (this *ObejctController) Put(){
}
func (this *ObejctController) Delete(){
}
```
-
models里面实现了对应操作对象的增删改取等操作
## 测试
-
添加一个对象:
`curl -X POST -d '{"Score":1337,"PlayerName":"Sean Plott"}' http://127.0.0.1:8080/object`
返回一个相应的objectID:astaxie1373349756660423900
-
查询一个对象
`curl -X GET http://127.0.0.1:8080/object/astaxie1373349756660423900`
-
查询全部的对象
`curl -X GET http://127.0.0.1:8080/object`
-
更新一个对象
`curl -X PUT -d '{"Score":10000}'http://127.0.0.1:8080/object/astaxie1373349756660423900`
-
删除一个对象
`curl -X DELETE http://127.0.0.1:8080/object/astaxie1373349756660423900`
docs/zh/README.md
View file @
38b083e1
# beego介绍
beego是一个类似tornado的Go应用框架,采用了RESTFul的方式来实现应用框架,是一个超轻量级的框架,主要有如下的特点:
-
支持MVC的方式,用户只需要关注逻辑,实现对应method的方法即可
-
支持websocket,通过自定义Handler实现集成sockjs等方式实现
-
支持自定义路由,支持各种方式的路由,正则、语意均支持,类似sinatra
-
session集成,支持memory、file、redis、mysql等存储
-
表单处理自动化解析,用户可以很方便的获取数据
-
日志分级系统,用户可以很方便的调试和应用日志记录
-
自定义配置文件,支持ini格式的文本配置,可以方便的在系统中调参数
-
采用了Go内置的模板,集成实现了很多Web开发中常用的函数
执行过程如下所示:
![](
images/beego.png
)
# beego简单例子
package main
import (
"github.com/astaxie/beego"
)
type MainController struct {
beego.Controller
}
func (this *MainController) Get() {
this.Ctx.WriteString("hello world")
}
func main() {
beego.Router("/", &MainController{})
beego.Run()
}
# beego 指南
*
[
为什么设计beego
](
Why.md
)
*
[
安装入门
](
Install.md
)
*
[
快速入门
](
Quickstart.md
)
*
[
一步一步开发应用
](
Tutorial.md
)
*
[
beego案例
](
Application.md
)
*
[
热升级
](
HotUpdate.md
)
# API接口
API对于我们平时开发应用非常有用,用于查询一些开发的函数,godoc做的非常好了
[
Go Walker
](
http://gowalker.org/github.com/astaxie/beego
)
# beego介绍
beego是一个类似tornado的Go应用框架,采用了RESTFul的方式来实现应用框架,是一个超轻量级的框架,主要有如下的特点:
-
支持MVC的方式,用户只需要关注逻辑,实现对应method的方法即可
-
支持websocket,通过自定义Handler实现集成sockjs等方式实现
-
支持自定义路由,支持各种方式的路由,正则、语意均支持,类似sinatra
-
session集成,支持memory、file、redis、mysql等存储
-
表单处理自动化解析,用户可以很方便的获取数据
-
日志分级系统,用户可以很方便的调试和应用日志记录
-
自定义配置文件,支持ini格式的文本配置,可以方便的在系统中调参数
-
采用了Go内置的模板,集成实现了很多Web开发中常用的函数
执行过程如下所示:
![](
images/beego.png
)
# beego简单例子
package main
import (
"github.com/astaxie/beego"
)
type MainController struct {
beego.Controller
}
func (this
*
MainController) Get() {
this.Ctx.WriteString("hello world")
}
func main() {
beego.Router("/", &MainController{})
beego.Run()
}
# beego 指南
*
[
为什么设计beego
](
Why.md
)
*
[
安装入门
](
Install.md
)
*
[
快速入门
](
Quickstart.md
)
*
[
一步一步开发应用
](
Tutorial.md
)
*
[
beego案例
](
Application.md
)
*
[
热升级
](
HotUpdate.md
)
*
[
API应用开发入门
](
API.md
)
# API接口
API对于我们平时开发应用非常有用,用于查询一些开发的函数,godoc做的非常好了
[
Go Walker
](
http://gowalker.org/github.com/astaxie/beego
)
example/beeapi/controllers/default.go
View file @
38b083e1
...
...
@@ -6,9 +6,6 @@ import (
"github.com/astaxie/beego/example/beeapi/models"
)
type
ResponseInfo
struct
{
}
type
ObejctController
struct
{
beego
.
Controller
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment