這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
1,beego api
Swagger 是一個規範和完整的架構,用於產生、描述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使用戶端和檔案系統作為伺服器以同樣的速度來更新。
項目地址是:http://swagger.io/
使用 beego 開發內建整合了 swagger的東西。
https://beego.me/docs/advantage/docs.md
github 地址:
https://github.com/beego/swagger
beego 使用最新的版本:1.8.0
2,非常的方便
建立一個項目:apiserver
bee api apiservercd apiserver/bee run -gendoc=true -downdoc=true
會自動下載最新的 swagger 壓縮檔:
2017/04/06 20:52:08 INFO 0001 Using 'apiserver' as 'appname'2017/04/06 20:52:08 INFO 0002 Loading default configuration...2017/04/06 20:52:08 INFO 0003 Downloading 'https://github.com/beego/swagger/archive/v2.zip' to 'swagger.zip'...2017/04/06 20:52:21 SUCCESS 0004 800610 bytes downloaded!
啟動成功,直接存取就可以了:
http://localhost:8080/swagger/#/user
非常花裡胡哨的介面了,紅的綠的黃的紫的。
3,代碼裡面可亂了
設定檔增加了
EnableDocs = true
其中 commentsRouter_controllers.go 這個檔案會根據 controller 裡面的內容自動產生。
而在 router 裡面配置了 NameSpace。通用的配置了下版本的資訊。
可以在頁面當中直接提交測試資料的json
可以在頁面當中直接進行查詢。
和之前官方的文檔不太一樣。因為版本升級了。
4,一個表單提交
研究了下注釋:
// @Description 建立使用者// @Param Username formData string "zhangsan" true "使用者名稱"// @Param Password formData string "123456" true "密碼"// @Success 200 {int} models.User.Id models.User.Username models.User// @Failure 403 body is empty// @router /addUser [post]func (u *UserController) Post() {
- 參數名
- 參數類型,可以有的值是 formData、query、path、body、header,formData 表示是 post請求的資料,query 表示帶在 url 之後的參數,path 表示請求路徑上得參數,例如上面例子裡面的 key,body 表示是一個
raw 資料請求,header 表示帶在 header 資訊中得參數。
- 參數類型
- 預設值
- 是否必須
- 注釋
產生的介面是:
可以發送參數請求了,並且可以將cookie帶入。
但是偽造cookie 就不行了。
可以考慮使用header當中存放 Token 參數保持使用者登入。
然後在請求的是都放入進去,寫死一個Token 保持使用者登入。
方便前端同學進行調試開發。
4,總結
本文的原文串連是: http://blog.csdn.net/freewebsys/article/details/69486943 未經博主允許不得轉載。
博主地址是:http://blog.csdn.net/freewebsys
beego 已經支援 swagger,開發一個前後端項目分離的項目最方便了。
同時可以要求把cookie 種到cookie 當中,然後使用子網域名稱,進行跨域訪問。
在beego 中開啟跨域訪問。
也可以儲存 Token ,然後放到header頭中傳遞使用者登入。
同時為了方便測試,可以寫入幾個預設值寫死一直登入。
方便測試借口。
可以把這個swagger 當成一個 PostMan的集合,直接進行測試調試。
非常符合項目拆分開發。非常的方便。