有,go語言有框架,例如:Beego(Go語言下開源的,高性能Web框架 )、Buffalo(Go語言下快速Web開發(fā)框架)、Echo、Gin、Iris、Revel(高生產(chǎn)率,全棧Go語言的Web框架)等。
創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十年時間我們累計服務(wù)了上千家以及全國政企客戶,如成都輕質(zhì)隔墻板等企業(yè)單位,完善的項目管理流程,嚴(yán)格把控項目進度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致稱贊。
可以先直接使用go自帶的http server 框架,這個框架涵蓋了絕大多數(shù)的功能,比如request response 的基本封裝,簡單的路由管理,文件上傳處理。
如果發(fā)現(xiàn)Go 自帶的框架解決不了問題,可以引入相應(yīng)的第三方組件,比如ORM可以采用中國人寫的gorm 比如web 的session 管理可以使用gorilla/session
當(dāng)然你也可以直接上大一統(tǒng)的框架比如你提到的beego 還有大名鼎鼎的martini 。不過不推薦,因為這樣的大框架和Go 語言本身的模塊設(shè)計有沖突。
實際開發(fā)建議用vscode 加Go 插件來做IDE,基本包含了其他成熟IDE的所有功能,而且還自帶強大的debug 功能。其他IDE debug 用起來非常麻煩比如idea 和liteIDE。題主也可以自己試下。
golang學(xué)習(xí)比較簡單,不過任何一門語言都不是孤立存在的,在這里簡要說明一下golang開發(fā)的學(xué)習(xí)路線
1.golang基礎(chǔ),包括go語言安裝,go語言語法,流程控制語句,函數(shù),方法,面向?qū)ο蟾拍?,網(wǎng)絡(luò)編程,并發(fā)編程等
2.golang開發(fā)框架,包括beego,gin,Iris,Echo等
3.微服務(wù)開發(fā)
4.深入的話還可以學(xué)習(xí)算法部分。如果要接觸區(qū)塊鏈相關(guān)技術(shù)的話,還需要學(xué)習(xí)區(qū)塊鏈的加密算法等相關(guān)知識
5.如果要結(jié)合go實現(xiàn)應(yīng)用的話,肯定離不開各種數(shù)據(jù)庫,比如關(guān)系型數(shù)據(jù)庫oracle、mysql,或者各類非關(guān)系型數(shù)據(jù)庫等等
6.如果需要開發(fā)界面的話,還需要學(xué)習(xí)網(wǎng)頁編程如html,javascript,vue,elementUI,bootstrap等網(wǎng)頁開發(fā)技術(shù)和框架。
7.在以上學(xué)習(xí)的基礎(chǔ)上還可以向架構(gòu)方面深入學(xué)習(xí)。
鏈喬教育在線祝您學(xué)有所成。
? 何為框架:
框架一直是敏捷開發(fā)中的利器,能讓開發(fā)者很快的上手并做出應(yīng)用,甚至有的時候,脫離了框架,一些開發(fā)者都不會寫程序了。成長總不會一蹴而就,從寫出程序獲取成就感,再到精通框架,快速構(gòu)造應(yīng)用,當(dāng)這些方面都得心應(yīng)手的時候,可以嘗試改造一些框架,或是自己創(chuàng)造一個。
Gin是一個golang的微框架,封裝比較優(yōu)雅,API友好,源碼注釋比較明確,已經(jīng)發(fā)布了1.0版本。具有快速靈活,容錯方便等特點。其實對于golang而言,web框架的依賴要遠比Python,Java之類的要小。自身的net/http足夠簡單,性能也非常不錯??蚣芨袷且恍┏S煤瘮?shù)或者工具的集合。借助框架開發(fā),不僅可以省去很多常用的封裝帶來的時間,也有助于團隊的編碼風(fēng)格和形成規(guī)范。
(1)首先需要安裝,安裝比較簡單,使用go get即可
go get github.com/gin-gonic/gin
如果安裝失敗,直接去Github clone下來,放置到對應(yīng)的目錄即可。
(2)代碼中使用:
下面是一個使用Gin的簡單例子:
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
router.Run(":8080") // listen and serve on 0.0.0.0:8080
}
簡單幾行代碼,就能實現(xiàn)一個web服務(wù)。使用gin的Default方法創(chuàng)建一個路由handler。然后通過HTTP方法綁定路由規(guī)則和路由函數(shù)。不同于net/http庫的路由函數(shù),gin進行了封裝,把request和response都封裝到gin.Context的上下文環(huán)境。最后是啟動路由的Run方法監(jiān)聽端口。麻雀雖小,五臟俱全。當(dāng)然,除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法。
Gin可以很方便的支持各種HTTP請求方法以及返回各種類型的數(shù)據(jù),詳情可以前往查看。
2.1 匹配參數(shù)
我們可以使用Gin框架快速的匹配參數(shù),如下代碼所示:
冒號:加上一個參數(shù)名組成路由參數(shù)??梢允褂胏.Param的方法讀取其值。當(dāng)然這個值是字串string。諸如/user/rsj217,和/user/hello都可以匹配,而/user/和/user/rsj217/不會被匹配。
瀏覽器輸入以下測試:
返回結(jié)果為:
其中c.String是gin.Context下提供的方法,用來返回字符串。
其中c.Json是gin.Context下提供的方法,用來返回Json。
下面我們使用以下gin提供的Group函數(shù),方便的為不同的API進行分類。
我們創(chuàng)建了一個gin的默認(rèn)路由,并為其分配了一個組 v1,監(jiān)聽hello請求并將其路由到視圖函數(shù)HelloPage,最后綁定到 0.0.0.0:8000
C.JSON是Gin實現(xiàn)的返回json數(shù)據(jù)的內(nèi)置方法,包含了2個參數(shù),狀態(tài)碼和返回的內(nèi)容。http.StatusOK代表返回狀態(tài)碼為200,正文為{"message": “welcome"}。
注:Gin還包含更多的返回方法如c.String, c.HTML, c.XML等,請自行了解??梢苑奖愕姆祷豀TML數(shù)據(jù)
我們在之前的組v1路由下新定義一個路由:
下面我們訪問
可以看到,通過c.Param(“key”)方法,Gin成功捕獲了url請求路徑中的參數(shù)。同理,gin也可以捕獲常規(guī)參數(shù),如下代碼所示:
在瀏覽器輸入以下代碼:
通過c.Query(“key”)可以成功接收到url參數(shù),c.DefaultQuery在參數(shù)不存在的情況下,會由其默認(rèn)值代替。
我們還可以為Gin定義一些默認(rèn)路由:
這時候,我們訪問一個不存在的頁面:
返回如下所示:
下面我們測試在Gin里面使用Post
在測試端輸入:
附帶發(fā)送的數(shù)據(jù),測試即可。記住需要使用POST方法.
繼續(xù)修改,將PostHandler的函數(shù)修改如下
測試工具輸入:
發(fā)送的內(nèi)容輸入:
返回結(jié)果如下:
備注:此處需要指定Content-Type為application/x-www-form-urlencoded,否則識別不出來。
一定要選擇對應(yīng)的PUT或者DELETE方法。
Gin框架快速的創(chuàng)建路由
能夠方便的創(chuàng)建分組
支持url正則表達式
支持參數(shù)查找(c.Param c.Query c.PostForm)
請求方法精準(zhǔn)匹配
支持404處理
快速的返回給客戶端數(shù)據(jù),常用的c.String c.JSON c.Data
知識分享之Golang篇是我在日常使用Golang時學(xué)習(xí)到的各種各樣的知識的記錄,將其整理出來以文章的形式分享給大家,來進行共同學(xué)習(xí)。歡迎大家進行持續(xù)關(guān)注。
知識分享系列目前包含Java、Golang、Linux、Docker等等。
awesome-go 這個組件包含了各種golang中常用的組件,說白了就是一個精選的 Go 框架、庫和軟件的匯總表。
我們?nèi)粘P枰獙ふ腋鞣Ngolang組件時在這個列表中基本都可以快速找到。
文章題目:go語言知識框架 go的框架
新聞來源:http://m.rwnh.cn/article4/doopcie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、Google、網(wǎng)站設(shè)計公司、全網(wǎng)營銷推廣、網(wǎng)站維護、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)