当前位置: 首页 > news >正文

坪地网站建设价位/软文新闻发布平台

坪地网站建设价位,软文新闻发布平台,深圳百度seo关键词排名,抖音网站建设哪家好〇、gin 路由 Gin是一个用于构建Web应用程序的Go语言框架,它具有简单、快速、灵活的特点。在Gin中,可以使用路由来定义URL和处理程序之间的映射关系。 r : gin.Default()// 访问 /index 这个路由// 获取信息r.GET("/index", func(c *gin.Con…

〇、gin 路由

Gin是一个用于构建Web应用程序的Go语言框架,它具有简单、快速、灵活的特点。在Gin中,可以使用路由来定义URL和处理程序之间的映射关系。

r := gin.Default()// 访问 /index 这个路由// 获取信息r.GET("/index", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"method": "GET",})})// 提交r.POST("/index", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"method": "POST",})})// 更新数据r.PUT("/index", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"method": "PUT",})})// 删除数据r.DELETE("/index", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"method": "DELETE",})})

还有一个可以匹配所有请求方法的Any方法如下:

// 请求方法大杂烩r.Any("/user", func(c *gin.Context) {switch c.Request.Method {case "GET":c.JSON(http.StatusOK, gin.H{"method": "GET",})case "PUT":c.JSON(http.StatusOK, gin.H{"method": "PUT",})}c.JSON(http.StatusOK, gin.H{"method": "Any",})})

如果没有配到路由怎么办?我们有时候输入了一个错误的地址,这时候服务器应该报 404 错误并且返回一个特定的页面:

在这里插入图片描述
在 gin 框架下,我们可以利用r.NoRoute()这样写:

	r.NoRoute(func(c *gin.Context) {c.JSON(http.StatusNotFound, gin.H{"msg": "你似乎来到了陌生的地带~",})})

运行结果为:
在这里插入图片描述

一、路由组

如果我们想实现很多的这样的路由:

  • http://127.0.0.1:9001/user/a
  • http://127.0.0.1:9001/user/b
  • http://127.0.0.1:9001/user/c
  • http://127.0.0.1:9001/user/d

如果一条一条写,将会很繁琐,于是路由组的概念就被提出来了。路由组是递归定义的,也就是说,路由组的成员也可以是一个路由组:

  • http://127.0.0.1:9001/user/a/1
  • http://127.0.0.1:9001/user/a/2
  • http://127.0.0.1:9001/user/a/3
  • http://127.0.0.1:9001/user/a/4
videoGroup := r.Group("/video"){videoGroup.GET("/index", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"msg": "/video/index",})})videoGroup.GET("/xxx", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"msg": "video/xxx",})})videoGroup.GET("/ooo", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"msg": "video/ooo",})})}

运行结果如下:

二、中间件

Gin框架允许开发者在处理请求的过程中,加入用户自己的钩子(Hook)函数。这个钩子函数就叫中间件,中间件适合处理一些公共的业务逻辑,比如登录认证、权限校验、数据分页、记录日志、耗时统计等。

比如以下就是一个很简单的中间件的示例:

func indexHandler(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"index": "Ok",})
}

配合 main 函数使用:

func main() {r := gin.Default()r.GET("/index", indexHandler,func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"shop": "welcome!",})})r.Run(":9001")}

GET请求的时候,程序会自动执行 indexHandler()这个函数,然后才会继续执行后面的匿名函数。因此indexHandler()就叫做中间件。

再来看看更为一般的中间件:

// 定义一个新的中间件
func m1(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"m1": "before!",})start := time.Now()c.Next()	// 停止调用后续的函数cost := time.Since(start)fmt.Printf("花费时间:%v\n", cost)c.JSON(http.StatusOK, gin.H{"m1": "after!",})}

这个中间件有具有更完整的功能了。首先,它会打印"m1": "before!",之后它会获取一个时间戳,然后会调用后面的handler,也就是匿名函数,这个指示由c.Next()发出,这个函数运行完成后会打印真个过程消耗的时间。之后这个中间件继续会打印"m1": "after!"

运行结果如下:

在这里插入图片描述

全文完,感谢阅读。

http://www.jmfq.cn/news/5325445.html

相关文章:

  • 预付网站建设费会计处理/陕西seo顾问服务
  • 网站建设 技术架构/软文推广代理平台
  • 上海 网站建设 外包it/手机建站平台
  • 简阳城乡建设委员会网站/千锋培训机构官网
  • 网站建设前台后台设计/互联网广告投放公司
  • 杭州城乡建设网站/百度快速排名培训
  • 温州市城乡建设建档案馆网站/网络营销工具平台
  • 对网站建设功能的情况说明/网络营销策划书2000字
  • 网站建设 新闻/专业软文代写
  • 个人网站建设主要功能/深圳推广平台有哪些
  • 个人网站建设方案书模板/软文如何推广
  • 大冶市建设局网站/上海关键词优化公司哪家好
  • 大数据网站建设和/做推广的软件有哪些
  • 栾川网站建设/郑州网站网页设计
  • 日本乡村为什么要建设网站/百度一下百度知道
  • 网站建设哪家公司好网站建设 公司/媒体发稿推广
  • 桂林百度网站建设/12345浏览器网址大全
  • 鞍山 网站建设/100大看免费行情的软件
  • 智能网站建设哪家好/吴中seo页面优化推广
  • 建设贷款网站哪家好/如何推广一个产品
  • 温州市建设安监局网站/怎样宣传自己的品牌
  • 网站建设公司好做吗/2021搜索引擎排名
  • 网站建设项目的摘要/网站建设技术外包
  • 淮安市政府门户网站建设的调查报告/电脑培训课程
  • 交友网站如果建设/网络营销推广工具有哪些
  • 高端网站建设 司法/市场营销策略包括哪些策略
  • 果洛电子商务网站建设/引流推广是什么意思
  • 网站建设插入竖线/12345微信公众号
  • 有偷菜餐厅城市建设的网站/怎么创建自己的游戏网站
  • 顺德网站建设基本流程/长沙疫情最新消息今天封城了