文章目录
前言
gin 框架中采用的路由库是基于httprouter做的
一、请求方式及写法
gin支持Restful风格的API请求方式有:ANY、GET、POST、PUT、PATCH 和 DELETE 请求1.get/post路由写法
代码如下(示例):
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
e := gin.Default()
// get请求
e.GET("/get", func(context *gin.Context) {
context.String(http.StatusOK, "当前使用get请求")
})
// post请求
e.POST("/post", func(context *gin.Context) {
context.String(http.StatusOK, "当前使用post请求")
})
// 运行
e.Run(":8080")
}
2.运行结果
使用get请求get方法(示例):
使用post请求post方法(示例):
二、路由分组
1.routes group是为了管理一些相同的URL
代码如下(示例):
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
e := gin.Default()
// 路由分组 v1:分组名称
v1 := e.Group("v1")
{
v1.GET("/get1", func(context *gin.Context) {
context.String(http.StatusOK, "get1")
})
v1.GET("/get2", func(context *gin.Context) {
context.String(http.StatusOK, "get2")
})
}
// 运行
e.Run(":8080")
}
结果。注意路由:
三、get路由参数
url参数可以通过DefaultQuery()
或Query()
方法获取
DefaultQuery()
若参数不村则,返回默认值
Query()
若不存在,返回空串
如:API ? name=zs
代码如下(示例):
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
e := gin.Default()
// get请求
e.GET("/get", func(context *gin.Context) {
// 指定默认值
name := context.DefaultQuery("name", "无参数")
context.String(http.StatusOK, "参数name:"+name)
})
// 运行
e.Run(":8080")
}
结果。注意路由:
四、post路由实例
1.post请求,http常见的传输格式为四种:
application/json
application/x-www-form-urlencoded
application/xml
multipart/form-data
- 表单参数可以通过
PostForm()
方法获取,该方法默认解析的是x-www-form-urlencoded
或from-data
格式的参数
代码如下(示例):
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
e := gin.Default()
// get请求
e.POST("/post", func(context *gin.Context) {
name := context.PostForm("name")
// 指定默认值
pwd := context.DefaultPostForm("pwd", "123")
context.String(http.StatusOK, "name:"+name+",pwd:"+pwd)
})
// 运行
e.Run(":8080")
}
结果: