BeeGo - iT 邦幫忙

文章推薦指數: 80 %
投票人數:10人

go get github.com/astaxie/beego. 除此之外,官方建議為了更好的使用bee套件,也可以加裝下面這個: go get -u github.com/beego/bee. 設置 GOPATH 什麼的就不說了。

2019iT邦幫忙鐵人賽 DAY 28 2 SoftwareDevelopment 啥物碗Golang?30天就Go系列第 28篇 BeeGo 2019鐵人賽 golang beego Bater 2018-11-0320:26:305231瀏覽 BeGoo說起來跟ruby還有一點點淵源,他的路由設計參考了sinatra,整體設計則參考了python的tornado與flask,都是輕量級框架。

在這樣的基礎上結合go語言本身的優點,成為一個適合快速開發輕量級http協定API或Web服務。

BeeGo是採用原生的net/http函數包,雖然跟python或ruby比較已經算是極快,但在速度上比不上昨天介紹的gin(因為httprouter的關係)。

熟悉現代網路框架像老媽子一樣把最佳實務都打包在一起給你的工程師可能會非常懷念,Beego提供了許多被寵壞的人視為「理所當然」的支援: MVC REST 靈活自由的路由設計 自動化測試、自動化打包、自動化發佈 Session管理 日誌管理 ORM 方便的JSON/XML服務 監控CPU、記憶體、QPS(Querypersecond)使用(等等這已經超過網路框架的預期了) 如果你不喜歡官方選配,Beego也有提供「模塊設計」,讓每個部分像樂高積木一樣可以讓你自由拆解重組,打造為最符合個人需求的樣貌。

光是介紹到這裡,我就深深被Beego所吸引。

畢竟如果像我從RubyonRails跳槽,速度不太會是我在意的地方,反正隨便一個新框架都比我快(XD)。

我之前就有聽過Golang在中國很紅,不過看了採用公司列表才發現,Beego在中國受歡迎的程度還真是遠超乎我的想像: 連官方網站上都有支援簡中,如果你英文不好的話,或許會覺得BeeGo相當親切(假如你有辦法讀簡體)。

安裝 安裝非常簡單: gogetgithub.com/astaxie/beego 除此之外,官方建議為了更好的使用bee套件,也可以加裝下面這個: goget-ugithub.com/beego/bee 設置GOPATH什麼的就不說了。

HelloWorld 首先來跑個HelloWorld看看: packagemain import( "github.com/astaxie/beego" ) typeMainControllerstruct{ beego.Controller } func(this*MainController)Get(){ this.Ctx.WriteString("helloworld") } funcmain(){ beego.Router("/",&MainController{}) beego.Run("localhost:3000") } 跟Gin一樣預設Port是8080,我不改成3000就會渾身不對勁。

這個範例看似簡單,其實他做了幾件事: beego基本上只需要引入自己,就可以完成基本的網路服務。

當然如果需要其他的功能或支援,可以另外再引入。

我們定義了一個名為MainController的struct,匿名包含了beego.Controller,這樣MainController就擁有了beego.Controller的所有方法。

定義RESTful方法,其實原本MainController就包含了GET、POST等所有方法,在這裏我們覆寫他,這樣當MainController執行GET的時候,就會執行我們的方法。

定義main函數。

Go語言跟C一樣需要有程式進入點,所以我們這邊設計了程式的入口。

Router設置路由,定義root根目錄會呼叫我們前面所設計的MainController。

最後是把整個網站服務Run起來,前面提過預設為8080,也可以手動指向其他的port(像我這裡指向3000)。

再下去當然可以講很多很多,可惜今天的篇幅就到這邊了(誰決定的?!),未來如果有機會應該會繼續多玩一些Beego的應用。

鐵人賽進入倒數兩天,時間真是過得飛快呢! Reference https://beego.me/ 留言 追蹤 檢舉 上一篇 Gin 下一篇 Iris 系列文 啥物碗Golang?30天就Go 共30篇 目錄 RSS系列文 訂閱系列文 59人訂閱 26 GolangWebFrameworks 27 Gin 28 BeeGo 29 Iris 30 KeepGoing三十天Golang挑戰回顧 完整目錄 尚未有邦友留言 立即登入留言 iT邦幫忙鐵人賽 參賽組數 1087組 團體組數 52組 累計文章數 20470篇 完賽人數 572人 鐵人賽最新文章 gotodie?那個goto到底能不能用啊? 2021/12/12更新 予焦啦!一夢終須醒...... 盤點清查與檢測掃描-資通安全健診 [13th][Day23]httpresponseheader(下) [13th][Day22]httpresponseheader(上) [13th][Day21]golangcontext 股票怎麼選?掌握這原則,你也能找到強勢股 Gitpush 盤點清查與檢測掃描-安全性檢測 前往鐵人賽 技術推廣專區 [Day2]抓取每日收盤價 [Day1]基本工具安裝 利用python取得永豐銀行API的Nonce [Day03]tinyML開發板介紹 永豐金融API測試員 [Day01]在享受tinyML這道美食之前 [Day3]使用ta-lib製作指標 [Day4]函數打包與買進持有報酬率試算 計算API所需要的參數:HashID 計算API所需要的參數:IV 前往鐵人賽 熱門問題 公司想要客製化一套ERP系統該選擇軟體開發?套裝系統?還是自行設立部門? 軟體工程師會被監控嗎 我有一個客戶中了mljx病毒勒索950美金我免費轉讓有人要接嗎? 訂房網站DB架構 (以解決)請問GMAIL群組.假如公司之前有業務群[email protected].有新職員收不到這個.如何把新業務加入 加班提醒視窗 想找PDF編輯工具,Adobe太貴了,請問還有其他推薦的替代方案嗎? 家中的網路配置 切割vlan網段方式 【已解決】如何安裝舊版本的VS2019 IT邦幫忙 站方公告 【2021iThome鐵人賽】登登登!究竟獎落誰家,2021iThome鐵人賽得獎名單正式揭曉 熱門tag 看更多 13th鐵人賽 12th鐵人賽 11th鐵人賽 鐵人賽 2019鐵人賽 2018鐵人賽 javascript 2017鐵人賽 windows php python windowsserver linux c# 程式設計 資訊安全 css vue.js sql 分享 熱門回答 公司想要客製化一套ERP系統該選擇軟體開發?套裝系統?還是自行設立部門? 軟體工程師會被監控嗎 想找PDF編輯工具,Adobe太貴了,請問還有其他推薦的替代方案嗎? 家中的網路配置 (以解決)請問GMAIL群組.假如公司之前有業務群[email protected].有新職員收不到這個.如何把新業務加入 RedhatEnterpriselinux5.5安裝Oracle問題 MYSQL如何將欄位中的json陣列資料拆分出來 防火牆如何設定DenyPolicy,以提高資安機制? 請問目前php8版本的問題 切割vlan網段方式 熱門文章 予焦啦!一夢終須醒...... gotodie?那個goto到底能不能用啊? 盤點清查與檢測掃描-資通安全健診 再增加五隻狗勾 自己在家接收來自飛機的ADS-B訊號! 2021/12/12更新 第七隻狗勾 第九隻狗勾 第六隻狗勾 第八隻狗勾 一週點數排行 更多點數排行 海綿寶寶(antijava) ㊣浩瀚星空㊣(yoching) 居然解出來了(partyyaya) raytracy(raytracy) ccenjor(ccenjor) mathewkl(mathewkl) japhenchen(japhenchen) 純真的人(jer5173) 小山丘(a243318490) fillano(fillano) × At 輸入對方的帳號或暱稱 Loading 找不到結果。

標記 {{result.label}} {{result.account}} 關閉



請為這篇文章評分?