人生苦短,我用 Golang--Gin 框架(二)
“ web 開發肯定免不了接收用戶輸入的參數,然後針對不同的參數做不同的邏輯處理。所以,今天我們就一起來看下 gin 框架怎麼獲取用戶參數
web 服務中,我們經常需要對用戶輸入的參數進行獲取,然後進行相應的操作。所以,獲取用戶的參數是必不可少的。上一篇文章中(人生苦短,我用 Golang--Gin 框架(一)),我們初步認識了 gin 框架,今天我們繼續學下 gin 框架中怎麼獲取用戶參數。
接收用戶參數通常有三種方式,分別是 url 參數、表單參數和 api 參數。接下來,我們就這三種接收參數的方式,分別來簡單看下 gin 框架的獲取方法。
01
gin 框架接收 url 參數可以通過 Query() 來獲取,例如
import (
"demo/src/main/router"
"github.com/gin-gonic/gin"
"io"
"net/http"
"os"
)
func main() {
// 關閉控制檯日誌顏色
gin.DisableConsoleColor()
// 配置日誌輸出目錄
f, _ := os.Create("go.log")
gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
r := gin.New()
// 使用log中間件
r.Use(gin.Logger())
r.GET("/hello", func(c *gin.Context) {
// 這裏通過Query()方法來獲取鍵爲name的值
n := c.Query("name")
c.JSON(http.StatusOK, gin.H{
"flag": true,
"msg": "hello " + n,
})
})
r.Run(":81")
}
現在我們發送 get 請求 http://localhost:81/hello?name=muqing,可得到下面結果。
post 請求,同上,只需要將 r.GET 改爲 r.POST 即可,這裏就先不做演示啦。
02
表單參數
gin 框架通過 PostForm() 方法來獲取表單參數,例如
import (
"demo/src/main/router"
"github.com/gin-gonic/gin"
"io"
"net/http"
"os"
)
func main() {
// 關閉控制檯日誌顏色
gin.DisableConsoleColor()
// 配置日誌輸出目錄
f, _ := os.Create("go.log")
gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
r := gin.New()
// 使用log中間件
r.Use(gin.Logger())
// 這裏需要換成post請求
r.POST("/hello", func(c *gin.Context) {
// 這裏通過PostForm()方法來獲取鍵爲name的值
n := c.PostForm("name")
c.JSON(http.StatusOK, gin.H{
"flag": true,
"msg": "hello " + n,
})
})
r.Run(":81")
}
接下來,我們用發起一個表單請求試試,用 goland 自帶工具即可。
運行上面的請求後,可得到以下結果。
03
API 參數
gin 框架通過 Param() 方法來獲取 api 參數,例如
import (
"demo/src/main/router"
"github.com/gin-gonic/gin"
"io"
"net/http"
"os"
)
func main() {
// 關閉控制檯日誌顏色
gin.DisableConsoleColor()
// 配置日誌輸出目錄
f, _ := os.Create("go.log")
gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
r := gin.New()
// 使用log中間件
r.Use(gin.Logger())
// api參數鍵需要前面加:
r.POST("/hello/:name", func(c *gin.Context) {
// 通過Param()方法來獲取api參數
n := c.Param("name")
c.JSON(http.StatusOK, gin.H{
"flag": true,
"msg": "hello " + n,
})
})
r.Run(":81")
}
現在我們發送 POST 請求 http://localhost:81/hello/muqing,可以得到以下結果。
今天的分享就先到這裏啦。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/Mx9EzVwjbgBxODxjrPmjcA