<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Gin 框架介紹與快速入門

          共 2942字,需瀏覽 6分鐘

           ·

          2024-04-12 04:50

          目錄

          • Gin 框架介紹與快速入門

            • 1.gin.Engine

            • 2.gin.Context

            • 1.安裝

            • 2.導(dǎo)入

            • 3.第一個Gin 應(yīng)用

            • 1. 快速和輕量級

            • 2. 路由和中間件

            • 3. JSON解析

            • 4. 支持插件

            • 5. Gin相關(guān)文檔

            • 一、Gin框架介紹

            • 二、基本使用

            • 三、應(yīng)用舉例

            • 四、Gin 入門核心


          一、Gin框架介紹

          Gin是一個輕量級的Go語言Web框架,它具有高性能和簡潔的設(shè)計。由于其快速的路由匹配和處理性能,Gin成為Go語言中最受歡迎的Web框架之一。以下是一些Gin框架的主要特點:

          1. 快速和輕量級

          Gin框架的設(shè)計注重性能和效率,采用了一些優(yōu)化措施,使其成為一個快速而輕量級的框架。

          2. 路由和中間件

          Gin提供了強(qiáng)大的路由功能,支持參數(shù)傳遞、路由分組等特性。同時,它支持中間件的使用,可以方便地在請求處理過程中執(zhí)行一系列的操作,比如身份驗證、日志記錄等。

          3. JSON解析

          Gin內(nèi)置了對JSON的解析和序列化的支持,使得處理JSON數(shù)據(jù)變得簡單而高效。

          4. 支持插件

          Gin允許開發(fā)者通過插件來擴(kuò)展框架的功能,這樣可以根據(jù)項目的需求進(jìn)行靈活的定制。

          5. Gin相關(guān)文檔

          • GitHub 地址:https://github.com/gin-gonic/gin

          • 中文文檔:https://gin-gonic.com/zh-cn/docs/

          二、基本使用

          1.安裝

          下載并安裝Gin:

          go get github.com/gin-gonic/gin@latest

          2.導(dǎo)入

          將其導(dǎo)入您的代碼中:

          import "github.com/gin-gonic/gin"

          (可選)導(dǎo)入net/http。例如,如果使用常量,則需要這樣做http.StatusOK。

          import "net/http"

          3.第一個Gin 應(yīng)用

          創(chuàng)建示例工程目錄 gin-demo

          mkdir gin-demo

          目錄下新建 gin.go 源文件:

          package main

          import (
          "github.com/gin-gonic/gin"
          "net/http"
          )

          func main() {
          // 1. 創(chuàng)建一個默認(rèn)的Gin引擎
          server := gin.Default()

          // 2. 定義路由:當(dāng)使用 GET 方法訪問路徑為 /hello 時,執(zhí)行回調(diào)函數(shù)
          server.GET("/hello", func(c *gin.Context) {
          // 3. 在回調(diào)函數(shù)中,返回一個字符串 "hello, go" 并設(shè)置HTTP狀態(tài)碼為200 OK
          c.String(http.StatusOK, "hello, go")
          })

          // 4. 啟動服務(wù),監(jiān)聽在 0.0.0.0:8080 上
          server.Run(":8080") // 如果不指定端口號,默認(rèn)為8080
          }

          代碼解釋如下:

          1. server := gin.Default(): 創(chuàng)建一個Gin引擎。gin.Default()返回一個帶有默認(rèn)中間件的Gin引擎,包括Logger和Recovery中間件,用于日志記錄和恢復(fù)。

          2. server.GET("/hello", func(c *gin.Context) {...}): 定義了一個GET方法的路由,當(dāng)訪問路徑是/hello時,執(zhí)行后面的回調(diào)函數(shù)。這里的回調(diào)函數(shù)使用gin.Context對象處理HTTP請求和構(gòu)造HTTP響應(yīng)。

          3. c.String(http.StatusOK, "hello, go"): 在回調(diào)函數(shù)中,通過c.String方法返回一個字符串 "hello, go" 并設(shè)置HTTP狀態(tài)碼為200 OK。

          4. server.Run(":8080"): 啟動Web服務(wù),監(jiān)聽在0.0.0.0:8080。如果不指定端口號,默認(rèn)使用8080端口。此時,你可以通過瀏覽器或HTTP客戶端訪問http://localhost:8080/hello,將會得到 "hello, go" 的響應(yīng)。

          在項目 gin-demo 目錄下,執(zhí)行 go mod init gin-demo 和 go mod tidy 命令完成依賴導(dǎo)入,將自動生產(chǎn) go.mod 、go.sum 文件。

          go mod init gin-demo
          go mod tidy

          gin-demo 目錄執(zhí)行命令 go run gin.go 啟動 gin Web Server:

          go run gin.go

          看到輸出監(jiān)聽端口了,就認(rèn)為已經(jīng)啟動成功了。

          最后通過瀏覽器訪問: http://localhost:8080/hello,就會輸出如下:

          三、應(yīng)用舉例

          以下項目都是使用 Gin 框架開發(fā)的:

          • gorush:Go 編寫的通知推送服務(wù)器。

          • fnproject:容器原生,云 serverless 平臺。

          • photoprism:基于 Go 和 Google TensorFlow 實現(xiàn)的個人照片管理工具。

          • krakend:擁有中間件的超高性能 API 網(wǎng)關(guān)。

          • picfit:Go 編寫的圖像尺寸調(diào)整服務(wù)器。

          • gotify:基于 WebSocket 進(jìn)行實時消息收發(fā)的簡單服務(wù)器。

          • cds:企業(yè)級持續(xù)交付和 DevOps 自動化開源平臺。

          四、Gin 入門核心

          1.gin.Engine

          在 Gin 里面,一個 Web 服務(wù)器被抽象成為 Engine。你可以在一個應(yīng)用里面創(chuàng)建多個 Engine 實例,監(jiān)聽不同的端口。Engine 承擔(dān)了路由注冊、接入 middleware 的核心職責(zé)。

          如圖,它組合了 RouterGroupRouterGroup 才是實現(xiàn)路由功能的核心組件。

          2.gin.Context

          gin.Context 是 Gin 里面的核心類型。應(yīng)該說,你日常最經(jīng)常的就是和它打交道。

          它的字面意思就是“上下文”,在 Gin 里面,它的核心職責(zé)是:

          • 處理請求

          • 返回響應(yīng)

          如圖,Request 代表的就是請求,Writer 代表的就是響應(yīng)。

          分享是一種快樂,開心是一種態(tài)度!

          鏈接:https://www.cnblogs.com/taoxiaoxin/p/17945334

          (版權(quán)歸原作者所有,侵刪)


          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久成人久久爱 | 免费观看大黄网站 | 99精品视频16在线免费观看 | 亚洲一级黄色视频在线观看 | 人人操人人操人摸 |