當前位置:
首頁 > 最新 > Beego+Swagger 快速上手

Beego+Swagger 快速上手

每天讀一篇一線開發者原創好文

大綱

Beego 是什麼

  • 為什麼寫這個

  • 如何指導

  • 前幾天我寫了一個《Swagger 上手指南》,覺得還是讓使用者難以上手。儘管它是一款優秀的API 工具。

    但我在編寫API 的過程中發現幾個問題:

    好,基於上面三點。我進行了探索:

    我一直很喜歡JetBrains 旗下的開發工具,樣樣皆上精品。各種主流的編程語言都有對應的集成開發環境,即使是只使用其中的一款,插件豐富,也能實現其他編程語言的編程。

    Settings —> Plugins —> Swagger Plugins Swagger Codegen

    下載上述兩個插件,即可在本地編寫yaml 格式的Swagger配置文件,左邊配置,右邊可視化。

    這樣可以本地實現配置文件的編寫,實現API 的編寫。

    beego 是一個快速開發 Go 應用的 HTTP 框架,他可以用來快速開發 API、Web 及後端服務等各種應用,是一個 RESTful 的框架,主要設計靈感來源於 tornado、sinatra 和 flask 這三個框架,但是結合了 Go 本身的一些特性(interface、struct 嵌入等)而設計的一個框架。

    其中一個功能是自動化文檔,讓用戶快速的編寫API。

    即:可以編程實現API。

    下面的文章即是:如何實現使用Beego + Swagger 快速開發API.

    接著上回的文章Swagger 上手指南 , 我在文章多次提出Http 請求包含哪些知識?

    即:根據不同的 Http 動作,訪問URL 路徑,定位資源,服務端根據請求,將資源進行返回給用戶的這麼一個過程。

    Beego 採用典型的MVC框架:即M(models)、V(views)和C(controllers)

    一個典型的Beego 框架的目錄大概是這樣的:

    使用Beego + Swagger 編寫API 的過程中,我們只需關注這些文件:

    go get github.com/astaxie/beego

    go get github.com/beego/bee

    beego 即:beego 庫文件,不懂環境配置搜索: Go 環境搭建

    bee 即: 命令行工具,這個很好理解,go 也有命令行工具,這些都是方便創建和管理相關項目的命令行(最近也在工作中開發一個命令行工具,有時間聊聊)

    開始

    bee api apiTest

    在 src (go項目環境變數下) 新建了一個apiTest 文件夾,裡面默認存在一些默認的API 文件

    bee run -gendoc=true -downdoc=true

    生成的 API 文件目錄大概這樣:

    主要處理:models 、contorlers 和 routers 三個文件。

    核心思路:關注這三點:http 動作、請求、以及返迴響應;無需關注具體的處理邏輯,一律使用 Fake 數據

    示例:

    實現下面這個例子:

    例子:

    前面我們已經知道了,結合Beego 和 Swagger 編寫API 的重點是在編寫 models 和 controllers: models 編寫參數、響應 即:定義各種各種的結構體和編寫具體的函數

    controllers 編寫具體的http 動作請求和響應 即:定義具體的參數類型和響應值和類型等。

    現在我們就以上例中的 get 方法講述如何編寫models 和 controller 。

    request: 無

    response: 分兩種:成功和失敗,響應值和狀態碼

    則:models 層這樣編寫:

    則 controller 層:

    回到 Swagger 上手指南, 我們指出:全文分三個部分,一個是全局基本信息:比如Swagger 版本,介紹,BasePath 等; 核心是path 部分:一個是URL 路徑,一個是Parameters 一個是Response .

    Beego + Swagger 如何實現這些信息的呢?

    Beego 靠編寫注釋來實現這些信息:

    router.go 文件信息注釋來實現全局信息:

    填寫關鍵字後面的內容即可改變全局信息。

    controller 文件內的注釋來實現path 中的Parameters 和 Response 等

    上例中的controller 這樣寫:

    其餘類似:

    要是看不懂,正確的做法應該是:

    總結

    本文講述使用Beego + bee + Swagger 實現的API 的編寫。

    核心在於理解:

    最後效果:

    ChangeLog

    2018.02.08 成文

    喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

    本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


    請您繼續閱讀更多來自 中興開發者社區 的精彩文章:

    Linux Bonding介紹及在虛擬網路設備中的應用

    TAG:中興開發者社區 |