• 
    

      <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
      1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>

        go語(yǔ)言有框架嗎 go語(yǔ)言前端框架

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

        Revel Web開源框架

        讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、鼎城網(wǎng)站維護(hù)、網(wǎng)站推廣。

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

        特點(diǎn)

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

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

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

        支持特性

        MVC;

        REST;

        智能路由;

        日志調(diào)試;

        配置管理;

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

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

        中間件插入邏輯;

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

        Go微服務(wù)--常見的微服務(wù)框架

        近幾年誕生了很多微服務(wù)框架,比如JAVA的Spring Cloud、Dubbo;Golang的GoKit和GoMicro以及NodeJs的Seneca。幾乎每種主流語(yǔ)言都有其對(duì)應(yīng)的微服務(wù)框架。

        Go在微服務(wù)框架中有其獨(dú)特的優(yōu)勢(shì),至于優(yōu)勢(shì)在哪,自行g(shù)oogle。

        1、GoKit框架

        這是一個(gè)工具包的集合,可以幫助攻城獅構(gòu)建強(qiáng)大、可靠和可維護(hù)的微服務(wù)。提供了用于實(shí)現(xiàn)系統(tǒng)監(jiān)控和彈性模式組件的庫(kù),例如日志、跟蹤、限流、熔斷等。

        基于這個(gè)框架的應(yīng)用程序架構(gòu)由三個(gè)主要的部分組成:

        傳輸層:用于網(wǎng)絡(luò)通信,服務(wù)通常使用HTTP或者gRPC等網(wǎng)絡(luò)傳輸協(xié)議,或者使用NATS等發(fā)布訂閱系統(tǒng)相互通信。

        接口層:是服務(wù)器和客戶端的基本構(gòu)建塊。每個(gè)對(duì)外提供的接口方法都會(huì)定義為一個(gè)Endpoint,一遍在服務(wù)器和客戶端之間進(jìn)行網(wǎng)絡(luò)通信,每個(gè)端點(diǎn)使用傳輸層通過HTTP或gRPC等具體通信模式對(duì)外提供服務(wù)

        服務(wù)成:具體的業(yè)務(wù)邏輯實(shí)現(xiàn)

        2、GoMicro框架

        這是一個(gè)基于Go語(yǔ)言實(shí)現(xiàn)的插件化RPC微服務(wù)框架。提供了服務(wù)發(fā)現(xiàn)、負(fù)載均衡、同步傳輸、異步通信以及事件驅(qū)動(dòng)等機(jī)制,嘗試簡(jiǎn)化分布式系統(tǒng)之間的通信,讓開發(fā)者更專注于自身業(yè)務(wù)邏輯的開發(fā)。

        GoMicro的設(shè)計(jì)哲學(xué)是可插拔的架構(gòu)理念,提供了可快速構(gòu)建系統(tǒng)的組件,并且可以根據(jù)自身的需求對(duì)GoMicro提供的默認(rèn)實(shí)現(xiàn)進(jìn)行定制。所有插件都可在倉(cāng)庫(kù)github.com/micro/go-plugins 中找到。

        go語(yǔ)言的webengine叫什么

        Java教程

        Linux入門

        更多

        首頁(yè)

        ?

        Go語(yǔ)言WEB框架(Gin)詳解

        在 Go語(yǔ)言開發(fā)的 Web 框架中,有兩款著名 Web 框架分別是 Martini 和 Gin,兩款 Web 框架相比較的話,Gin 自己說它比 Martini 要強(qiáng)很多。

        Gin 是 Go語(yǔ)言寫的一個(gè) web 框架,它具有運(yùn)行速度快,分組的路由器,良好的崩潰捕獲和錯(cuò)誤處理,非常好的支持中間件和 json。總之在 Go語(yǔ)言開發(fā)領(lǐng)域是一款值得好好研究的 Web 框架,開源網(wǎng)址:

        首先下載安裝 gin 包:

        go get -u github.com/gin-gonic/gin

        一個(gè)簡(jiǎn)單的例子:

        package main

        import "github.com/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)行程序,打開瀏覽器,訪問頁(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),通過提供這些功能,使開發(fā)人員更方便地處理 WEB 業(yè)務(wù)。

        Gin 實(shí)際應(yīng)用

        接下來使用 Gin 作為框架來搭建一個(gè)擁有靜態(tài)資源站點(diǎn),動(dòng)態(tài) WEB 站點(diǎn),以及 RESTFull API 接口站點(diǎn)(可專門作為手機(jī) APP 應(yīng)用提供服務(wù)使用)組成的,亦可根據(jù)情況分拆這套系統(tǒng),每種功能獨(dú)立出來單獨(dú)提供服務(wù)。

        下面按照一套系統(tǒng)但采用分站點(diǎn)來說明,首先是整個(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ù)情況來修改。整個(gè)項(xiàng)目已經(jīng)開源,可以訪問來詳細(xì)了解:具體每個(gè)站點(diǎn)的功能怎么實(shí)現(xiàn)呢?請(qǐng)看下面有關(guān)每個(gè)功能的講述:

        靜態(tài)資源站點(diǎn)

        一般網(wǎng)站開發(fā)中,我們會(huì)考慮把 js,css,以及資源圖片放在一起,作為靜態(tài)站點(diǎn)部署在 CDN,提升響應(yīng)速度。采用 Gin 實(shí)現(xiàn)起來非常簡(jiǎn)單,當(dāng)然也可以使用 net/http 包輕松實(shí)現(xiàn),但使用 Gin 會(huì)更方便。

        不管怎么樣,使用 Go 開發(fā),我們可以不用花太多時(shí)間在 WEB 服務(wù)環(huán)境搭建上,程序啟動(dòng)就直接可以提供 WEB 服務(wù)了。

        package main

        import (

        "net/http"

        "github.com/gin-gonic/gin"

        )

        func main() {

        router := gin.Default()

        // 靜態(tài)資源加載,本例為css,js以及資源圖片

        router.StaticFS("/public", http.Dir("D:/goproject/src/github.com/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)就可以正常訪問了。

        go語(yǔ)言web框架beego安裝(go mod方式)

        go語(yǔ)言web框架beego安裝(go mod方式)_不忘初心,方得始終-CSDN博客

        重要:將bee命令放到GOROOT/bin目錄下,這步很關(guān)鍵

        cp bee /usr/local/go/bin/

        注:或者可以將GOPATH/bin設(shè)置為環(huán)境變量

        echo ’export PATH=" PATH"' ~/.bashrc

        source ~/.bashrc

        router路由下方法名要大寫,訪問權(quán)限

        wq保存

        生效環(huán)境變量: source /etc/profile

        go build -o abc.exe可指定編譯后的文件名

        Golang常用環(huán)境變量說明與設(shè)置詳解

        環(huán)境變量GOBIN表示我們開發(fā)程序編譯后二進(jìn)制命令的安裝目錄。

        當(dāng)我們使用go install命令編譯和打包應(yīng)用程序時(shí),該命令會(huì)將編譯后二進(jìn)制程序打包GOBIN目錄,一般我們將GOBIN設(shè)置為GOPATH/bin目錄。

        export GOBIN=$GOPATH/bin

        Go get包管理mod

        windows下默認(rèn)項(xiàng)目路徑在go安裝目錄的src下(beego)

        go語(yǔ)言框架gin之集成swagger

        1.先安裝Go對(duì)應(yīng)的開源Swagger相關(guān)的庫(kù)

        go get?github.com/swaggo/swag/cmd/swag

        go get github.com/swaggo/gin-swagger

        go get?github.com/swaggo/files

        go get?github.com/alecthomas/template

        2.驗(yàn)證是否安裝成功:swag -v

        3.針對(duì)接口寫入注解

        // @Summary 獲取多個(gè)標(biāo)簽

        // @Tags 標(biāo)簽

        // @Produce? json

        // @Param name query string false "標(biāo)簽名稱" maxlength(100)

        // @Param state query int false "狀態(tài)" Enums(0, 1) default(1)

        // @Param page query int false "頁(yè)碼"

        // @Param page_size query int false "每頁(yè)數(shù)量"

        // @Success 200 {object} model.TagSwagger "成功"

        // @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"

        // @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"

        // @Router /api/v1/tags [get]

        func (t Tag) List(c *gin.Context) {

        }

        // @Summary 新增標(biāo)簽

        // @Tags 標(biāo)簽

        // @Produce? json

        // @Param name body string true "標(biāo)簽名稱" minlength(3) maxlength(100)

        // @Param state body int false "狀態(tài)" Enums(0, 1) default(1)

        // @Param created_by body string false "創(chuàng)建者" minlength(3) maxlength(100)

        // @Success 200 {object} model.Tag "成功"

        // @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"

        // @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"

        // @Router /api/v1/tags [post]

        func (t Tag) Create(c *gin.Context) {

        }

        // @Summary 更新標(biāo)簽

        // @Tags 標(biāo)簽

        // @Produce? json

        // @Param id path int true "標(biāo)簽ID"

        // @Param name body string false "標(biāo)簽名稱" minlength(3) maxlength(100)

        // @Param state body int false "狀態(tài) (0為未刪除、1為已刪除)" Enums(0, 1) default(1)

        // @Param modified_by body string true "修改者" minlength(3) maxlength(100)

        // @Success 200 {array} model.Tag "成功"

        // @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"

        // @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"

        // @Router /api/v1/tags/{id} [put]

        func (t Tag) Update(c *gin.Context) {

        }

        4.針對(duì)整個(gè)項(xiàng)目進(jìn)行注解,直接在main方法寫入如下注解

        //@title 項(xiàng)目名稱

        //@version 1.0

        //@description 這里是描述

        func main() {

        5.生成執(zhí)行 swag init

        這時(shí)會(huì)在我項(xiàng)目的docs文件夾下面生成docs.go、swagger.json、swagger.yaml三個(gè)文件

        6.要在routers中進(jìn)行默認(rèn)初始化和注冊(cè)對(duì)應(yīng)的路由:

        r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

        同時(shí)要引用 _"blog-service/docs" ,不然會(huì)報(bào)錯(cuò)

        7.查看接口文檔 :

        8.ok,完成

        當(dāng)前標(biāo)題:go語(yǔ)言有框架嗎 go語(yǔ)言前端框架
        分享鏈接:http://www.jbt999.com/article10/doochdo.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、Google、網(wǎng)站排名品牌網(wǎng)站制作、標(biāo)簽優(yōu)化

        廣告

        聲明:本網(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;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

        營(yíng)銷型網(wǎng)站建設(shè)

      2. 
        

          <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
          1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>
            国产精品秘 久久久久久 | 学生妹一级黄色片久久 | 思思热视频在线 | 亚洲第一色情网站 | 天天操天天干天天操天天干 | 精品 码红桃二区三区 | 午夜理理伦电影A片无码蜜桃av | 青青草在线播放视频 | 不卡的av天天在线影院 | 精品国产第六区 |