首页 > 编程语言 >Go语言之gin框架源码学习

Go语言之gin框架源码学习

时间:2023-06-10 18:44:46浏览次数:28  
标签:GET debug 源码 go GIN Go gin main

Go语言之gin框架源码学习

gin 框架路由注册与路由匹配、中间件

package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

func func1(c *gin.Context) {
	fmt.Println("func1")
}
func func2(c *gin.Context) {
	fmt.Println("func2 before")
	c.Next()
	fmt.Println("func2 after")
}
func func3(c *gin.Context) {
	fmt.Println("func3")
	//c.Abort()
}
func func4(c *gin.Context) {
	fmt.Println("func4")
	c.Set("name", "test")
}
func func5(c *gin.Context) {
	fmt.Println("func5")
	v, ok := c.Get("name")
	if ok {
		vStr := v.(string) // 类型转换
		fmt.Println("vStr", vStr)
	}
}

func main() {
	r := gin.Default()

	r.GET("/hello", func(c *gin.Context) {
		c.String(http.StatusOK, "ok")
	})

	shopGroup := r.Group("/shop", func1, func2) // 针对当前路由组生效的中间件
	shopGroup.Use(func3)
	{
		shopGroup.GET("/index", func4, func5)
	}

	r.Run()
}

运行

Code/go/gin_demo via 

标签:GET,debug,源码,go,GIN,Go,gin,main
From: https://www.cnblogs.com/QiaoPengjun/p/17471746.html

相关文章

  • 认识 ArgoCD
    ArgoCD官网:https://argo-cd.readthedocs.io/en/stable/应用程序的定义、配置和环境应该是声明式的,并受版本控制。应用程序部署和生命周期管理应该是自动化的、可审计的,并且易于理解。ArgoCD遵循GitOps模式,使用Git存储库作为定义所需应用程序状态的真实源。Kubernetes清单可......
  • 数学老师从没这么教过,乘法竖式中进位可以是多位(附Python实现与测试源码)...
    大概十五年前,曾经写过一个C语言版本的类似代码。核心思想是:在乘法竖式计算过程中,每次的进位实际上是可以超过一位的,虽然老师从来没有这么教过。这样的操作在Python中是没有必要的,因为Python中的数字没有大小限制。但在C语言或其他静态类型语言中,由于整型变量能够表示的范围有限,所以......
  • 构建高效互联网医院系统:源码开发技巧
    目前来看,互联网医院系统源码的构建成为了医院信息化建设的一个重要方向。在构建高效互联网医院系统的过程中,源码开发技巧显得尤为重要。本篇文章,小编将为大家着重讲述一下,希望对您有一定的帮助。一、系统整体架构设计理论上来讲,整体架构的开发就是互联网医院系统的核心之一,在这个过......
  • go-work使用
    gowork使用(1.)初始化工作空间goworkinit[moddirs]说明:moddirs是GoModule所在的本地目录。如果有多个GoModule,就用空格分开。如果goworkinit后面没有参数,会创建一个空的workspace。执行goworkinit后会生成一个go.work文件,go.work里列出了该workspace需要用到的GoMo......
  • Mac 配置 用brew 配置mongodb 的配置
    安装参考这个 https://blog.csdn.net/qq_37268201/article/details/103962477修改Http类型和缓存https://zhuanlan.zhihu.com/p/474800808 方案一https://www.likecs.com/ask-586760.html 查看时,参考下面[email protected],whichmeansitwasnot......
  • nginx优化配置进程数与cpu亲和性之间的关系,你真正了解吗???
    关于nginx的进程数的配置,以及cpu亲和性的配置,大家能了解多少呢? worker_processes:配置线程数在高并发的web服务器场景下,并发实际是有进程处理,那么为了保障处理并发,线程数肯定要事先启动足。打个比方就像是开餐厅,开业之前需要招聘相对数量的服务员来接待客户。而worker_process......
  • Nginx 获取与传递真实访问IP
    1.环境首先,我这里的环境为nginx-1.1.2.2,通过yum安装。如果想要源码安装,需要通过如下参数,启用ngx_http_realip_module模块。--with-http_realip_module而传递真实IP到后端,需要使用到ngx_http_proxy_module模块,此模块默认会编译。对于Nginx的安装和添加nginx模块等,有问题可参考......
  • nginx及常用部署方式与性能优化
    nginx做反向代理服务器nginx配置:upstreambackend_server{server123.34.34.34weight=1server123.34.34.35weight=1}server{location/{proxy_passhttp://backend_server;proxy_set_headerHost$http_hosti:$http_host:$proxy_port;......
  • DevExpress源码编译(部分翻译)
    环境准备(DevExpressv18.2~22.2):vs2015至2022版本.netframework4.7.2或更高(实际我们项目用4.5.2可以编译)asp.netmvc3(devexpressmvc项目)在devexpress安装目录下(默认C:\ProgramFiles\DevExpress(version)\Components\)创建dlls目录,复制以下依赖。Microsoft.VisualStu......
  • Python日志模块logging高级用法
    问题描述:为了监视程序运行过程,也为了在程序崩溃后进行事后分析来定位错误的原因和位置,不少程序员会在程序中适当的位置使用print()函数输出一些信息。这种方式虽然方便,但是难以实现输出内容的分级。一般建议使用日志模块logging来完成这一任务。在Python中有5个级别的日志,优先级从......