本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1、路由概述
路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。
这就不得不提restful架构了,在 RESTful 架构中,每个网址代表一种资源(也是每一个URI),不同的请求方式表示执行不同的操作:
POST:从服务器创建一个资源 GET: 从服务器取出资源 PUT: 客户端提供更新后的资源给服务器 DELETE:删除服务器资源
2、配置路由(使用postman测试)
1、简单配置
r.GET("/hello", func(c *gin.Context) { c.String(200, "Get") })
POST: r.POST("/url",function) //与get类似
PUT: r.PUT("/url",function)
DELETE: r.DELETE("/url",function) ```
### 2、使用GET请求在路径获取值
go 1、启动项目 2、在浏览器输入 域名/hello?id=10 r.GET("/hello", func(c *gin.Context) { aid := c.Query("id") //截取路径id c.String(200, "id=%s", id) })
### 3、动态路由
动态路由应用广泛,比如需要某一个商品详情,我们就可以通过动态路由,使用商品的id查询商品的数据,然后传送到前端。
go // 在浏览器输入: 域名/hello/10 r.GET("/hello/:id", func(c *gin.Context) { id := c.Param("id") //截取路径上的id c.String(200, "helloID=%s", id) })
### 4、c.String() c.JSON() c.JSONP() c.XML() c.HTML()的数据
gin框架一般使用c.String() c.JSON() c.JSONP() c.XML() c.HTML()返回数据
#### 1、返回一个字符串
go r.GET("/hello", func(c *gin.Context) { aid := c.Query("id") c.String(200, "id=%s", id) })
#### 返回一个 JSON 数据
``
go func main() { r := gin.Default() // gin.H 是 map[string]interface{}的缩写 r.GET("/helloJSON", func(c *gin.Context) { // 方式一:自己拼接 JSON c.JSON(http.StatusOK, gin.H{"message": "Hello world!" }) }) r.GET("/moreJSON", func(c *gin.Context) { // 方法二:使用结构体 var msg struct { Name string
json:"user"` Message string
}
msg.Name = "JSON数据"
msg.Message = "Hello JSONDATA"
c.JSON(http.StatusOK, msg) })
r.Run(":8080") } ``` 其他几个和这两个差不多,就不啰里啰唆了。
### 3、渲染模板
go router.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "default/index.html", //渲染到哪个页面 map[string]interface{}{ "msg": "hello template" }) }) //数据
```
版权归原作者 一个月只能改一次欧 所有, 如有侵权,请联系我们删除。