golang(5)使用beego 開發 api server 和前端同窗拆分開發,使用swagger

1,beego api


Swagger 是一個規範和完整的框架,用於生成、描寫敘述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使client和文件系統做爲服務器以相同的速度來更新。
項目地址是:http://swagger.io/
使用 beego 開發自帶集成了 swagger的東西。前端


https://beego.me/docs/advantage/docs.md
github 地址:
https://github.com/beego/swagger
beego 使用最新的版本號:1.8.0git

2。很的方便


建立一個項目:apiservergithub

bee api apiserver
cd apiserver/
bee run -gendoc=true -downdoc=true

會本身主動下載最新的 swagger 壓縮文件:web

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
json

很花裏胡哨的界面了,紅的綠的黃的紫的。後端

3,代碼裏面可亂了


配置文件添加了api

EnableDocs = true

其中 commentsRouter_controllers.go 這個文件會依據 controller 裏面的內容本身主動生成。
而在 router 裏面配置了 NameSpace。通用的配置了下版本號的信息。

可以在頁面其中直接提交測試數據的json

可以在頁面其中直接進行查詢。
和以前官方的文檔不太同樣。因爲版本號升級了。跨域

4,一個表單提交


研究了下凝視:服務器

// @Description 建立用戶
// @Param   Username    formData    string  "zhangsan"  true    "username"
// @Param   Password    formData    string  "123456"    true    "password"
// @Success 200     {int}       models.User.Id models.User.Username models.User
// @Failure 403     body is empty
// @router /addUser [post]
func (u *UserController) Post() {
  1. 參數名
  2. 參數類型,可以有的值是 formData、query、path、body、header,formData 表示是 post請求的數據。query 表示帶在 url 以後的參數。path 表示請求路徑上得參數,好比上面樣例裏面的 key,body 表示是一個
    raw 數據請求,header 表示帶在 header 信息中得參數。
  3. 參數類型
  4. 默認值
  5. 是否必須
  6. 凝視

生成的界面是:

可以發送參數請求了,並且可以將cookie帶入。
但是僞造cookie 就不行了。
可以考慮使用header其中存放 Token 參數保持用戶登陸。
而後在請求的是都放入進去。寫死一個Token 保持用戶登陸。markdown


方便前端同窗進行調試開發。

4。總結


本文的原文鏈接是: http://blog.csdn.net/freewebsys/article/details/69486943 未經博主贊成不得轉載。


博主地址是:http://blog.csdn.net/freewebsys

beego 已經支持 swagger。開發一個先後端項目分離的項目最方便了。
同一時候可以要求把cookie 種到cookie 其中,而後使用子域名,進行跨域訪問。
在beego 中開啓跨域訪問。
也可以存儲 Token ,而後放到header頭中傳遞用戶登陸。
同一時候爲了方便測試,可以寫入幾個默認值寫死一直登陸。
方便測試藉口。


可以把這個swagger 當成一個 PostMan的集合,直接進行測試調試。

很符合項目拆分開發。很的方便。

相關文章
相關標籤/搜索