gin 路由
1捉蚤、基本路由
gin框架中采用的路由庫(kù)是基于httprouter做的
地址為:GitHub - julienschmidt/httprouter: A high performance HTTP request router that scales well
2牢贸、Restful風(fēng)格的API
gin支持Restful風(fēng)格的API
即Representational State Transfer的縮寫(xiě)茶没。直接翻譯的意思是“表現(xiàn)層狀態(tài)轉(zhuǎn)化”尼变,是一種互聯(lián)網(wǎng)應(yīng)用程序的API設(shè)計(jì)理念:URL定位資源但骨,用HTTP描述操作恋技。
1獲取文件
2添加
3修改
4刪除
default
使用new路由,默認(rèn)用了兩個(gè)中間件Logger()根竿,recover()陵像。
GET - 從指定的資源請(qǐng)求數(shù)據(jù)。
POST - 向指定的資源提交要被處理的數(shù)據(jù)寇壳。
API參數(shù)
可以通過(guò)Context的Param獲取API參數(shù)
URL參數(shù)
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
)
// gin的Hellowork
func main() {
// 1. 創(chuàng)建路由器
r := gin.Default()
// 2. 綁定路由規(guī)則醒颖,執(zhí)行函數(shù)
// gin.Context,封裝了request和respones
r.POST("/from", func(c *gin.Context) {
// 表單參數(shù)設(shè)置默認(rèn)值
type1 := c.DefaultPostForm("type","alert")
// 接收其他的
username := c.PostForm("username")
password := c.PostForm("password")
// 多選框
hobbys := c.PostFormArray("hobby")
c.String(http.StatusOK,
fmt.Sprintf("type is %s,username is %s ,password is %s,hobby is %s \n",
type1,username,password,hobbys))
})
// 3.監(jiān)聽(tīng)端口,默認(rèn)8080
r.Run(":8000")
}
表單參數(shù)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登錄</title>
</head>
<body>
<form action="http://127.0.0.1:8000/from" method="post" enctype="application/x-www-form-urlencoded">
用戶名:<input type="text" name="username">
<br>
密  碼:<input type="password" name="password">
興  趣:
<input type="checkbox" value="run" name="hobby">跑步
<input type="checkbox" value="game" name="hobby">游戲
<input type="checkbox" value="money" name="hobby">金錢(qián)
<br>
<input type="submit" value="登錄">
</form>
</body>
</html>
結(jié)果我是隨便輸入的