真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語(yǔ)言開(kāi)發(fā)框架是什么,go需要框架

GoLang -- Gin框架

? 何為框架:

創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元新樂(lè)做網(wǎng)站,已為上家服務(wù),為新樂(lè)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

框架一直是敏捷開(kāi)發(fā)中的利器,能讓開(kāi)發(fā)者很快的上手并做出應(yīng)用,甚至有的時(shí)候,脫離了框架,一些開(kāi)發(fā)者都不會(huì)寫(xiě)程序了。成長(zhǎng)總不會(huì)一蹴而就,從寫(xiě)出程序獲取成就感,再到精通框架,快速構(gòu)造應(yīng)用,當(dāng)這些方面都得心應(yīng)手的時(shí)候,可以嘗試改造一些框架,或是自己創(chuàng)造一個(gè)。

Gin是一個(gè)golang的微框架,封裝比較優(yōu)雅,API友好,源碼注釋比較明確,已經(jīng)發(fā)布了1.0版本。具有快速靈活,容錯(cuò)方便等特點(diǎn)。其實(shí)對(duì)于golang而言,web框架的依賴要遠(yuǎn)比Python,Java之類的要小。自身的net/http足夠簡(jiǎn)單,性能也非常不錯(cuò)。框架更像是一些常用函數(shù)或者工具的集合。借助框架開(kāi)發(fā),不僅可以省去很多常用的封裝帶來(lái)的時(shí)間,也有助于團(tuán)隊(duì)的編碼風(fēng)格和形成規(guī)范。

(1)首先需要安裝,安裝比較簡(jiǎn)單,使用go get即可

go get github.com/gin-gonic/gin

如果安裝失敗,直接去Github clone下來(lái),放置到對(duì)應(yīng)的目錄即可。

(2)代碼中使用:

下面是一個(gè)使用Gin的簡(jiǎn)單例子:

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

}

簡(jiǎn)單幾行代碼,就能實(shí)現(xiàn)一個(gè)web服務(wù)。使用gin的Default方法創(chuàng)建一個(gè)路由handler。然后通過(guò)HTTP方法綁定路由規(guī)則和路由函數(shù)。不同于net/http庫(kù)的路由函數(shù),gin進(jìn)行了封裝,把request和response都封裝到gin.Context的上下文環(huán)境。最后是啟動(dòng)路由的Run方法監(jiān)聽(tīng)端口。麻雀雖小,五臟俱全。當(dāng)然,除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法。

Gin可以很方便的支持各種HTTP請(qǐng)求方法以及返回各種類型的數(shù)據(jù),詳情可以前往查看。

2.1 匹配參數(shù)

我們可以使用Gin框架快速的匹配參數(shù),如下代碼所示:

冒號(hào):加上一個(gè)參數(shù)名組成路由參數(shù)。可以使用c.Param的方法讀取其值。當(dāng)然這個(gè)值是字串string。諸如/user/rsj217,和/user/hello都可以匹配,而/user/和/user/rsj217/不會(huì)被匹配。

瀏覽器輸入以下測(cè)試:

返回結(jié)果為:

其中c.String是gin.Context下提供的方法,用來(lái)返回字符串。

其中c.Json是gin.Context下提供的方法,用來(lái)返回Json。

下面我們使用以下gin提供的Group函數(shù),方便的為不同的API進(jìn)行分類。

我們創(chuàng)建了一個(gè)gin的默認(rèn)路由,并為其分配了一個(gè)組 v1,監(jiān)聽(tīng)hello請(qǐng)求并將其路由到視圖函數(shù)HelloPage,最后綁定到 0.0.0.0:8000

C.JSON是Gin實(shí)現(xiàn)的返回json數(shù)據(jù)的內(nèi)置方法,包含了2個(gè)參數(shù),狀態(tài)碼和返回的內(nèi)容。http.StatusOK代表返回狀態(tài)碼為200,正文為{"message": “welcome"}。

注:Gin還包含更多的返回方法如c.String, c.HTML, c.XML等,請(qǐng)自行了解??梢苑奖愕姆祷豀TML數(shù)據(jù)

我們?cè)谥暗慕Mv1路由下新定義一個(gè)路由:

下面我們?cè)L問(wèn)

可以看到,通過(guò)c.Param(“key”)方法,Gin成功捕獲了url請(qǐng)求路徑中的參數(shù)。同理,gin也可以捕獲常規(guī)參數(shù),如下代碼所示:

在瀏覽器輸入以下代碼:

通過(guò)c.Query(“key”)可以成功接收到url參數(shù),c.DefaultQuery在參數(shù)不存在的情況下,會(huì)由其默認(rèn)值代替。

我們還可以為Gin定義一些默認(rèn)路由:

這時(shí)候,我們?cè)L問(wèn)一個(gè)不存在的頁(yè)面:

返回如下所示:

下面我們測(cè)試在Gin里面使用Post

在測(cè)試端輸入:

附帶發(fā)送的數(shù)據(jù),測(cè)試即可。記住需要使用POST方法.

繼續(xù)修改,將PostHandler的函數(shù)修改如下

測(cè)試工具輸入:

發(fā)送的內(nèi)容輸入:

返回結(jié)果如下:

備注:此處需要指定Content-Type為application/x-www-form-urlencoded,否則識(shí)別不出來(lái)。

一定要選擇對(duì)應(yīng)的PUT或者DELETE方法。

Gin框架快速的創(chuàng)建路由

能夠方便的創(chuàng)建分組

支持url正則表達(dá)式

支持參數(shù)查找(c.Param c.Query c.PostForm)

請(qǐng)求方法精準(zhǔn)匹配

支持404處理

快速的返回給客戶端數(shù)據(jù),常用的c.String c.JSON c.Data

go是什么編程語(yǔ)言?主要應(yīng)用于哪些方面?

Go語(yǔ)言由Google公司開(kāi)發(fā),并于2009年開(kāi)源,相比Java/Python/C等語(yǔ)言,Go尤其擅長(zhǎng)并發(fā)編程,性能堪比C語(yǔ)言,開(kāi)發(fā)效率肩比Python,被譽(yù)為“21世紀(jì)的C語(yǔ)言”。

Go語(yǔ)言在云計(jì)算、大數(shù)據(jù)、微服務(wù)、高并發(fā)領(lǐng)域應(yīng)用應(yīng)用非常廣泛。BAT大廠正在把Go作為新項(xiàng)目開(kāi)發(fā)的首選語(yǔ)言。

Go語(yǔ)言能干什么?

1、服務(wù)端開(kāi)發(fā):以前你使用C或者C++做的那些事情,用Go來(lái)做很合適,例如日志處理、文件系統(tǒng)、監(jiān)控系統(tǒng)等;

2、DevOps:運(yùn)維生態(tài)中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go語(yǔ)言開(kāi)發(fā);

3、網(wǎng)絡(luò)編程:大量?jī)?yōu)秀的Web框架如Echo、Gin、Iris、beego等,而且Go內(nèi)置的 net/http包十分的優(yōu)秀;

4、Paas云平臺(tái)領(lǐng)域:Kubernetes和Docker Swarm等;

5、分布式存儲(chǔ)領(lǐng)域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;

6、區(qū)塊鏈領(lǐng)域:區(qū)塊鏈里面有兩個(gè)明星項(xiàng)目以太坊和fabric都使用Go語(yǔ)言;

7、容器虛擬化:大名鼎鼎的Docker就是使用Go語(yǔ)言實(shí)現(xiàn)的;

8、爬蟲(chóng)及大數(shù)據(jù):Go語(yǔ)言天生支持并發(fā),所以十分適合編寫(xiě)分布式爬蟲(chóng)及大數(shù)據(jù)處理。

Golang web 框架對(duì)比

由于 golang 提供了完善的net/http標(biāo)準(zhǔn)庫(kù),基于該標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)一個(gè)web框架的難度相比其他語(yǔ)言低了不少,所以go web框架簡(jiǎn)直就是百花齊放。從老牌的revel和 beego ,到新出的 gin ,和 iris 等,而且還有一些類似于 chi 這種router。個(gè)人一般小項(xiàng)目,尤其是中間件需要暴露一些http接口的,基本就使用chi即可。

本次測(cè)試主要是gin iris echo 這三個(gè)框架。側(cè)重在于高性能,從并發(fā)和json序列化和反序列化兩個(gè)方面來(lái)測(cè)評(píng),畢竟后臺(tái)項(xiàng)目側(cè)重的也就是這兩個(gè)方面。

為了選擇符合重IO的框架,現(xiàn)設(shè)定如下場(chǎng)景的demo,demo的具體要求如下:

gin:

iris:

echo:

由于要測(cè)試5種body樣本,4種場(chǎng)景,4個(gè)框架,因此把重點(diǎn)數(shù)據(jù)篩選出來(lái)(吞吐量、錯(cuò)誤率和99%Line,重要性依次遞減),結(jié)果都繪制了圖形,方便比對(duì)查看。

綜合以上各個(gè)測(cè)試結(jié)果可以看出,gin以及iris都是非常優(yōu)秀的框架,gin的優(yōu)勢(shì)比其他稍微大點(diǎn),iris次之,而echo相應(yīng)差一點(diǎn)。

本次測(cè)試只是簡(jiǎn)單測(cè)試了一下3個(gè)框架的并發(fā)和json相關(guān)。對(duì)比結(jié)果,不包括生態(tài)和工具的完善度等等。如果測(cè)試有什么不完善的地方,歡迎交流。

另外歡迎大家試用和star另外一個(gè)web框架 baa ,為了避嫌我沒(méi)有貼出baa的數(shù)據(jù),性能測(cè)試處于gin之后和iris之間。

Go語(yǔ)言做Web應(yīng)用開(kāi)發(fā)的框架,哪一個(gè)更適合入門(mén)

Revel Web開(kāi)源框架

個(gè)高效的Go語(yǔ)言Web開(kāi)發(fā)框架,?其思路完全來(lái)自 Java 的?Play Framework。

特點(diǎn)

熱編譯,簡(jiǎn)單可選,同步(每個(gè)請(qǐng)求都創(chuàng)建自己的goroutine來(lái)處理。

Go語(yǔ)言Web框架:beego

一個(gè)用Go開(kāi)發(fā)的應(yīng)用框架,思路來(lái)自于tornado,路由設(shè)計(jì)來(lái)源于sinatra。

支持特性

MVC;

REST;

智能路由;

日志調(diào)試;

配置管理;

模板自動(dòng)渲染;

layout設(shè)計(jì);

中間件插入邏輯;

方便的JSON/XML服務(wù);


本文題目:go語(yǔ)言開(kāi)發(fā)框架是什么,go需要框架
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/heehsp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部