可以先直接使用go自帶的http server 框架,這個(gè)框架涵蓋了絕大多數(shù)的功能,比如request response 的基本封裝,簡(jiǎn)單的路由管理,文件上傳處理。

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)寶雞,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
如果發(fā)現(xiàn)Go 自帶的框架解決不了問(wèn)題,可以引入相應(yīng)的第三方組件,比如ORM可以采用中國(guó)人寫(xiě)的gorm 比如web 的session 管理可以使用gorilla/session
當(dāng)然你也可以直接上大一統(tǒng)的框架比如你提到的beego 還有大名鼎鼎的martini 。不過(guò)不推薦,因?yàn)檫@樣的大框架和Go 語(yǔ)言本身的模塊設(shè)計(jì)有沖突。
實(shí)際開(kāi)發(fā)建議用vscode 加Go 插件來(lái)做IDE,基本包含了其他成熟IDE的所有功能,而且還自帶強(qiáng)大的debug 功能。其他IDE debug 用起來(lái)非常麻煩比如idea 和liteIDE。題主也可以自己試下。
Java教程
Linux入門(mén)
更多
首頁(yè)
?
Go語(yǔ)言WEB框架(Gin)詳解
在 Go語(yǔ)言開(kāi)發(fā)的 Web 框架中,有兩款著名 Web 框架分別是 Martini 和 Gin,兩款 Web 框架相比較的話,Gin 自己說(shuō)它比 Martini 要強(qiáng)很多。
Gin 是 Go語(yǔ)言寫(xiě)的一個(gè) web 框架,它具有運(yùn)行速度快,分組的路由器,良好的崩潰捕獲和錯(cuò)誤處理,非常好的支持中間件和 json。總之在 Go語(yǔ)言開(kāi)發(fā)領(lǐng)域是一款值得好好研究的 Web 框架,開(kāi)源網(wǎng)址:
首先下載安裝 gin 包:
go get -u github點(diǎn)抗 /gin-gonic/gin
一個(gè)簡(jiǎn)單的例子:
package main
import "github點(diǎn)抗 /gin-gonic/gin"
func main() {
//Default返回一個(gè)默認(rèn)的路由引擎
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
//輸出json結(jié)果給調(diào)用方
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}
編譯運(yùn)行程序,打開(kāi)瀏覽器,訪問(wèn)頁(yè)面顯示:
{"message":"pong"}
gin 的功能不只是簡(jiǎn)單輸出 Json 數(shù)據(jù)。它是一個(gè)輕量級(jí)的 WEB 框架,支持 RestFull 風(fēng)格 API,支持 GET,POST,PUT,PATCH,DELETE,OPTIONS 等 http 方法,支持文件上傳,分組路由,Multipart/Urlencoded FORM,以及支持 JsonP,參數(shù)處理等等功能,這些都和 WEB 緊密相關(guān),通過(guò)提供這些功能,使開(kāi)發(fā)人員更方便地處理 WEB 業(yè)務(wù)。
Gin 實(shí)際應(yīng)用
接下來(lái)使用 Gin 作為框架來(lái)搭建一個(gè)擁有靜態(tài)資源站點(diǎn),動(dòng)態(tài) WEB 站點(diǎn),以及 RESTFull API 接口站點(diǎn)(可專門(mén)作為手機(jī) APP 應(yīng)用提供服務(wù)使用)組成的,亦可根據(jù)情況分拆這套系統(tǒng),每種功能獨(dú)立出來(lái)單獨(dú)提供服務(wù)。
下面按照一套系統(tǒng)但采用分站點(diǎn)來(lái)說(shuō)明,首先是整個(gè)系統(tǒng)的目錄結(jié)構(gòu),website 目錄下面 static 是資源類文件,為靜態(tài)資源站點(diǎn)專用;photo 目錄是 UGC 上傳圖片目錄,tpl 是動(dòng)態(tài)站點(diǎn)的模板。
當(dāng)然這個(gè)目錄結(jié)構(gòu)是一種約定,可以根據(jù)情況來(lái)修改。整個(gè)項(xiàng)目已經(jīng)開(kāi)源,可以訪問(wèn)來(lái)詳細(xì)了解:具體每個(gè)站點(diǎn)的功能怎么實(shí)現(xiàn)呢?請(qǐng)看下面有關(guān)每個(gè)功能的講述:
靜態(tài)資源站點(diǎn)
一般網(wǎng)站開(kāi)發(fā)中,我們會(huì)考慮把 js,css,以及資源圖片放在一起,作為靜態(tài)站點(diǎn)部署在 CDN,提升響應(yīng)速度。采用 Gin 實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單,當(dāng)然也可以使用 net/http 包輕松實(shí)現(xiàn),但使用 Gin 會(huì)更方便。
不管怎么樣,使用 Go 開(kāi)發(fā),我們可以不用花太多時(shí)間在 WEB 服務(wù)環(huán)境搭建上,程序啟動(dòng)就直接可以提供 WEB 服務(wù)了。
package main
import (
"net/http"
"github點(diǎn)抗 /gin-gonic/gin"
)
func main() {
router := gin.Default()
// 靜態(tài)資源加載,本例為css,js以及資源圖片
router.StaticFS("/public", http.Dir("D:/goproject/src/github點(diǎn)抗 /ffhelicopter/tmm/website/static"))
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
// Listen and serve on 0.0.0.0:80
router.Run(":80")
}
首先需要是生成一個(gè) Engine,這是 gin 的核心,默認(rèn)帶有 Logger 和 Recovery 兩個(gè)中間件。
router := gin.Default()
StaticFile 是加載單個(gè)文件,而 StaticFS 是加載一個(gè)完整的目錄資源:
func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes
func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes
這些目錄下資源是可以隨時(shí)更新,而不用重新啟動(dòng)程序。現(xiàn)在編譯運(yùn)行程序,靜態(tài)站點(diǎn)就可以正常訪問(wèn)了。
有,go語(yǔ)言有框架,例如:Beego(Go語(yǔ)言下開(kāi)源的,高性能Web框架 )、Buffalo(Go語(yǔ)言下快速Web開(kāi)發(fā)框架)、Echo、Gin、Iris、Revel(高生產(chǎn)率,全棧Go語(yǔ)言的Web框架)等。
文章名稱:go語(yǔ)言框架gogf go語(yǔ)言框架推薦
本文來(lái)源:http://chinadenli.net/article46/ddgsceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、小程序開(kāi)發(fā)、微信公眾號(hào)、網(wǎng)頁(yè)設(shè)計(jì)公司、關(guān)鍵詞優(yōu)化、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)