<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Gin框架系列01:極速上手

      Gin是什么?

      Gin是Go語言編寫的web框架,具備中間件、崩潰處理、JSON驗證、內置渲染等多種功能。

      準備工作

      本系列演示所有代碼都在Github中,感興趣的同學可以自行查閱,歡迎大家一起完善。

      https://github.com/pingyeaa/golang-examples/tree/master/gin
      

      沒有安裝配置Go語言環境的同學請先自行安裝,這里不再贅述。首先,我們來創建工作目錄gin

      mkdir gin && cd gin
      

      然后用go mod命令初始化項目,go mod是Go語言的包管理工具,官方推薦使用,有了它就不再受GOPATH的限制,可以在任何目錄初始化項目。

      go mod init gin
      

      接下來安裝gin庫。

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

      創建演示代碼的入口文件main.go,當前項目結構大致如下。

      .
      ├── go.mod
      ├── go.sum
      └── main.go
      

      編寫代碼

      工作準備就緒之后,來開始今天的代碼編寫,以經典代碼hello word為例。

      實例化一個gin對象

      r := gin.Default()
      

      Default方法的主要作用是實例化一個帶有日志、故障恢復中間件的引擎。

      func Default() *Engine {
      	debugPrintWARNINGDefault()
      	engine := New()
      	engine.Use(Logger(), Recovery())
      	return engine
      }
      

      定義請求

      定義一個GET請求的路由,參數一是路由地址,也就是在瀏覽器訪問的相對路徑,參數二是一個匿名函數,函數內部用于業務邏輯處理。

      r.GET("/hello", func(c *gin.Context) {
      
      })
      

      我們就在函數內調用JSON方法返回數據。JSON的操作非常簡單,參數一是狀態碼,參數二是JSON的內容。

      r.GET("/hello", func(c *gin.Context) {
        c.JSON(200, gin.H{
          "msg": "Hello world!",
        })
      })
      

      JSON內容可以通過gin提供的H方法來構建,非常方便。

      // H is a shortcut for map[string]interface{}
      type H map[string]interface{}
      

      運行

      Run方法最終會調用內置http庫的ListenAndServe方法來監聽端口,如果不傳參數默認監聽80端口,也可以通過參數來變更地址和端口。

      r.Run(":8081")
      

      測試

      在瀏覽器訪問localhost:8081,如果看到如下提示即成功。

      file

      完整代碼

      package main
      
      import "github.com/gin-gonic/gin"
      
      func main() {
      	r := gin.Default()
      	r.GET("/ping", func(c *gin.Context) {
      		c.JSON(200, gin.H{
      			"msg": "Hello world!",
      		})
      	})
      	r.Run(":8081")
      }
      

      Go語言庫代碼示例,歡迎star
      https://github.com/pingyeaa/golang-examples

      感謝大家的觀看,如果覺得文章對你有所幫助,歡迎關注公眾號「平也」,聚焦Go語言與技術原理。
      關注我

      posted @ 2020-04-06 17:58  MARIOOW  閱讀(1239)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 乱色欧美激惰| 国内自产少妇自拍区免费| 国产蜜臀一区二区在线播放| 2021av在线| 日本高清一区免费中文视频| 蜜桃一区二区三区在线看| 亚洲国产精久久久久久久春色| 亚洲va久久久噜噜噜久久狠狠| 亚洲熟妇自偷自拍另欧美| 欧美成本人视频免费播放| 区。| 亚洲一二区在线视频播放| 国产仑乱无码内谢| 巨胸不知火舞露双奶头无遮挡| 国产蜜臀视频一区二区三区| 精品一区二区三区不卡| 欧美一区二区三区成人久久片| 免费看视频的网站| 久久国内精品自在自线观看| 四虎永久免费高清视频| 全免费A级毛片免费看无码| 久久亚洲女同第一区综合| 亚洲AV无码久久久久网站蜜桃| 亚洲成人av在线系列| 人妻加勒比系列无码专区| chinese性内射高清国产| 国产精品成人午夜福利| 欧美激烈精交gif动态图| 久久精品免费无码区| 精选国产av精选一区二区三区| 国产精品七七在线播放| 秋霞人妻无码中文字幕| 国产二区三区不卡免费| 亚洲国产成人无码av在线播放 | 国产口爆吞精在线视频2020版| 亚洲情A成黄在线观看动漫尤物 | 亚洲精品天堂在线观看| 国内精品久久人妻无码妲| 亚洲国产大片永久免费看| 精品人妻人人做人人爽夜夜爽| 国产精品无码无片在线观看3d|