本文是探讨的是"Go高级之Gin框架中AJAX参数的提取
"
此文章是个人学习归纳的心得,未经允许,严禁转载,如有不对, 还望斧正, 感谢!
GET请求通常用于获取或查询资源。在HTTP协议中,GET是请求方法的一种,用于从服务器获取数据。具体来说,GET请求通常用于以下几种情况:
请注意,GET请求的数据参数有长度限制,一般不能超过2048个字符。如果需要传递大量数据,可能需要使用POST或其他更适合的方法。
GET请求携带的参数通常分为两种类型:Params和Query。
Params:Params参数通常以键值对的形式附加在URL后面,用于传递一些相对较少的参数。这些参数不以查询字符串的形式出现,而是作为URL的一部分,通常在问号之后。例如,在URL http://example.com/api?param1=value1¶m2=value2
中,param1
和 param2
就是Params参数。
Params参数主要用于传递一些简单的、少量的参数,如用户ID、排序规则等。由于Params参数直接附加在URL上,因此其传递的数据量相对较小,安全性也相对较高。但需要注意的是,由于URL长度的限制,Params参数不适合传递大量的数据。
go get -u github.com/gin-gonic/gin
package main
import (
"github.com/gin-gonic/gin"
)
func main(){
server := gin.Default() // 创建一个gin服务器实例
server.GET("/",func(c *gin.Context){
c.String("200","这里是gin服务器")
})
server.Run(":9090") // 把实例跑起来
}
上面的代码运行起来,如下图,我们可以在自己的浏览器访问,localhost:9090
package main
import (
"github.com/gin-gonic/gin"
)
func main(){
server := gin.Default() // 创建一个gin服务器实例
server.GET("/",func(c *gin.Context){
c.String(200,"这里是gin服务器")
})
server.GET("/demo/:id", func (c *gin.Context) { //注意这边的 `:id`
id := c.Param("id")
fmt.Println(id)
c.String(200, "恭喜你,访问到了")
}
)
server.Run(":9090") // 把实例跑起来
}
注意这边的demo/666 ,代码中我们写的是 demo/:id
其中666
作为Params参数被捕获到了。
还有一个需要注意的点,请看下面的代码
server.GET("/demo/:id", func (c *gin.Context) { })
server.GET("/demo/*id", func (c *gin.Context) { })
上面的代码,其中第一条访问路由的时候,必须要传id, 下面的写法,就可传可不传,主要还是冒号和星号的区别
Query:Query参数以查询字符串的形式出现在URL中,通常在问号之后。查询字符串中包含了多个键值对,每个键值对之间使用等号连接,不同的键值对之间使用“&”符号分隔。例如,在URL http://example.com/api?param1=value1¶m2=value2
中,param1
和 param2
就是Query参数。
Query参数主要用于传递一些相对较多的参数,如搜索条件、过滤规则等。由于Query参数以查询字符串的形式出现,因此其可以传递较大的数据量,但安全性相对较低。Query参数通常用于在服务器端进行过滤、排序等操作,以支持更灵活的数据查询和操作。
package main
import (
"github.com/gin-gonic/gin"
)
func main(){
server := gin.Default() // 创建一个gin服务器实例
server.GET("/demo2",func(c *gin.Context){
id := c.Query("id") //query参数的话,是键值对的形式拼凑在路径之后,我们通过键来找值
age := c.DefaultQuery("age", "666") //这个函数是给个默认值,如果找不到键为age的,就给个666
ok := c.QueryArray("ok") //一个键可以有多个值,此函数将这个键的值以数组返回
fmt.Println("id:", id, "age:", age, "ok:", ok)
c.String(200,"这里是gin服务器")
})
}
)
server.Run(":9090") // 把实例跑起来
}
然后我们把代码跑起来,然后在浏览器可以进行访问了,这个参数的顺序其实可以随意写的
query参数提取的方法还有几个,有兴趣的朋友可以自己去了解 这是Gin框架的官网,有中文版本的 https://gin-gonic.com/
对了,我近期要用Gin框架+Vue3+js+MongoDB写一个个人博客网站的小实践,前后端都是自己来写,我将全程记录,从网站的UI设计,HTML、CSS实现,再到网站的整体架构、数据库的设计,再到具体的细节的实现,网站的腾讯云的部署,腾讯云域名的购买和使用,和使用腾讯云的相关服务,我将全面细致的记录下来,这也是对Gin框架的一次实践,欢迎关注我的后续动态,也可以订阅我的专栏。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。