BeeGo - iT 邦幫忙
文章推薦指數: 80 %
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}}
關閉
延伸文章資訊
- 1beego Framework - GitHub
- 2beego is an open-source, high-performance web ... - GitHub
beego is an open-source, high-performance web framework for the Go programming language. - GitHub...
- 3Beego Example - GitHub
- 4Homepage - beego: simple & powerful Go app framework
Beego Web is official blog and documentation website for beego app web framework. ... go get gith...
- 5Beego Compress provides an automated system for ... - GitHub