這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
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
源碼解析
autorender = false //API應用不需要模板渲染,所以關閉自動渲染
copyrequestbody = true //RESTFul應用發送資訊的時候是raw body,而不是普通的form表單,所以需要額外的讀取body資訊
- main.go檔案主要針對RESTFul的路由註冊
beego.RESTRouter("/object", &controllers.ObejctController{})
這個路由可以匹配如下的規則
URL |
HTTP Verb |
Functionality |
/object |
POST |
Creating Objects |
/object/objectId |
GET |
Retrieving Objects |
/object/objectId |
PUT |
Updating Objects |
/object |
GET |
Queries |
/object/objectId |
DELETE |
Deleting Objects |
- 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