Gin 框架中的路由
1、路由概述
组成的,涉及到应用如何响应客户端对某个网站节点的访问。
RESTful API 是目前比较成熟的一套互联网应用程序的 API 设计理论,所以我们设计我们的路
由的时候建议参考 RESTful API 指南。
在 RESTful 架构中,每个网址代表一种资源,不同的请求方式表示执行不同的操作:
GET
(
SELECT
)
|
从服务器取出资源(一项或多项)
|
POST
(
CREATE
)
|
在服务器新建一个资源
|
PUT
(
UPDATE
)
|
在服务器更新资源(客户端提供改变后的完整资源)
|
DELETE
(
DELETE
)
|
从服务器删除资源
|
2、简单的路由配置
简单的路由配置(可以通过 postman 测试)
当用 GET 请求访问一个网址的时候,做什么事情:
r.GET(" 网址 ", func(c *gin.Context) {c.String(200, "Get")})
当用 POST 访问一个网址的时候,做什么事情:
r.POST(" 网址 ", func(c *gin.Context) {c.String(200, "POST")})
当用 PUT 访问一个网址的时候,执行的操作:
r.PUT(" 网址 ", func(c *gin.Context) {c.String(200, "PUT")})
当用 DELETE 访问一个网址的时候,执行的操作:
r.DELETE(" 网址 ", func(c *gin.Context) {c.String(200, "DELETE")})
路由里面获取 Get 传值
域名/news?aid=20
r.GET("/news", func(c *gin.Context) {aid := c.Query("aid")c.String(200, "aid=%s", aid)})
动态路由
域名/user/20
r.GET("/user/:uid", func(c *gin.Context) {uid := c.Param("uid")c.String(200, "userID=%s", uid)})
3、 c.String() c.JSON() c.JSONP() c.XML() c.HTML()
返回一个字符串
r.GET("/news", func(c *gin.Context) {aid := c.Query("aid")c.String(200, "aid=%s", aid)})
返回一个 JSON 数据
func main() {r := gin.Default()// gin.H 是 map[string]interface{} 的缩写r.GET("/someJSON", func(c *gin.Context) {// 方式一:自己拼接 JSONc.JSON(http.StatusOK, gin.H{"message": "Hello world!"})})r.GET("/moreJSON", func(c *gin.Context) {// 方法二:使用结构体var msg struct {Namestring `json:"user"`Message stringAgeint}msg.Name = "雨轩编程 "msg.Message = "Hello world!"msg.Age = 18c.JSON(http.StatusOK, msg)})r.Run(":8080")}
JSOPN
func main() {r := gin.Default()r.GET("/JSONP", func(c *gin.Context) {data := map[string]interface{}{"foo": "bar",}// /JSONP?callback=x// 将输出: x({\"foo\":\"bar\"})c.JSONP(http.StatusOK, data)})// 监听并在 0.0.0.0:8080 上启动服务r.Run(":8080")}
返回 XML 数据
func main() {r := gin.Default()// gin.H 是 map[string]interface{} 的缩写r.GET("/someXML", func(c *gin.Context) {// 方式一:自己拼接 JSONc.XML(http.StatusOK, gin.H{"message": "Hello world!"})})r.GET("/moreXML", func(c *gin.Context) {// 方法二:使用结构体type MessageRecord struct {Name stringMessage stringAge int}var msg MessageRecordmsg.Name = "雨轩编程 "msg.Message = "Hello world!"msg.Age = 18c.XML(http.StatusOK, msg)})r.Run(":8080")}
渲染模板
router.GET("/", func(c *gin.Context) {c.HTML(http.StatusOK, "default/index.html", map[string]interface{}{"title": "前台首页 "})})
原文地址:https://blog.csdn.net/qq_30895747/article/details/143802686
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!