Gin Web框架實戰速學 一 開張篇

  不知不覺,距離golang已經發布了10年了,勞資預言golang將來必定會是一等一很是好,很是棒的語言,不要問爲何,我就是這樣以爲。微軟2003年發佈.net(目前好像也比較「」叼「的樣子,注意「」叼」字加了雙引號),蘋果2007年發佈Object C(後來變爲Switch,勞資也不懂),Google做爲世界上一等一的科技公司(至於百度不說了)php

 

,確定也要有本身的語言,因而golang 2009發佈了,將來碾壓.net,腳踢switch天然不在話下(這裏不討論語言好壞,其實能賺錢的技術好語言)。因此學習golang是很值得的。java

能夠參考文章:node

部落圖鑑之 Go:爹好還這麼努力

但本教程不是教你學golang基礎知識,而是講解golang web框架gin,因此go環境自行安裝,go基礎請自行惡補。本課程以「程序員在囧途在線教育「課程+github爲參考+本身的一點嘮叨python

學習gin需具有:git

一、已經瞭解go語法基礎(go 1.11+).瞭解Linux、docker(基本操做)
二、對其餘語言有過簡單的web代碼編寫基礎
三、對數據庫、redis 等 有所基礎瞭解,能自行搭建環境程序員

git github地址
https://github.com/gin-gonic/gingithub

 

廢話很少說,下面開始咱們看教程:golang

 

1、建立項目,分幾步web

 

一、隨便建立一個文件夾(不要有中文、空格和奇怪的字符串,沒有爲何)
二、在 api.jeng.com下建立topic ,表明 話題相關API(其實起什麼名字都無所謂)
三、cd進入topic執行: go mod init topic.jeng.com (mod爲go包管理工具,php有composer,node有npm,java有maven,python有pip,我們go也不能差吧)
四、在當前(topic目錄)目錄cmd(終端)下執行
go get github.com/gin-gonic/gin(gin會自動安裝在你的gopath目錄下的xxxxxx/pkg/mod/github.com/下)
五、用goland 打開topic目錄(goland採用2018.3以上版本,不然不支持mod索引啥的)
六、設置goland(Fiel->setting->Go:[一、GOROOT必須大於1.11版本,二、Go Modules勾選Enable Go Modules])redis

 

 

項目目錄文件以下:

 

 

 

2、開始寫代碼

 

在topic項目目錄建立main.go文件

根據github的案例教程無腦輸入一下內容

 

package main

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

func main() {
    r := gin.Default()    //建立默認路由,其實就是一個handler
   //添加路由,不用爲何是 /ping(你能夠能夠設置爲/user, /login),勞資複製GitHub官方的案例,保持原汁原味,因此多看官方文檔 r.GET(
"/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) })
  //默認開啓8080,若是須要開啓其餘的,能夠設置r.Run(9090) r.Run()
// listen and serve on 0.0.0.0:8080 }

 

執行goland菜單欄的run,項目運行後,使用chrome瀏覽器訪問  

http://localhost:8080/ping

便可看到輸出內容   {"message":"pong"}  #擦,原來gin的做者喜歡打乒乓

 

 

完了,gin就是這麼簡單,簡單得「讓人髮指

 

如下改裝下代碼:

其實代碼也能夠這樣寫:

package main
import "github.com/gin-gonic/gin"
type Topic struct{
    TopicID int
    TopicTitle string }

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200,&Topic{101, "這是title"})  //傳結構體
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

輸出    {"TopicID":101,"TopicTitle":"這是title"}

 

或者這樣寫:

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

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {

        m:=make(map[string]string)
        m["topicid"]="102"
        m["topictitle"]="title--102"

        c.JSON(200,m)  //給map類型
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

若是你想輸出字符串,能夠這樣寫

r.GET("/", func(c *gin.Context) {         
    c.Writer.Write([]
byte("firewdddeb"))
})

 

先講這麼些內容,不得不說gin真的很是好,很是棒,套用gin的話

Gin is a web framework written in Go (Golang). It features a martini-like API with much better performance, up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love Gin.

 

相關文章
相關標籤/搜索