Gin框架入门
2022/2/27 23:25:16
本文主要是介绍Gin框架入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考文档
Gin: https://gin-gonic.com/zh-cn/docs/quickstart/ net/http: https://pkg.go.dev/net/http
代码分析
package main import ( "fmt" "time" // 时间包 "net/http" // 提供了HTTP客户端和服务端的实现 "github.com/gin-gonic/gin" // gin框架 ) func main() { // 返回Gin的`type Engine struct{}`,里面包含RouterGroup, // 相当于创建一个路由Handlers, 可以后期绑定各类的路由规则和函数/中间件等 router := gin.Default() // 创建不同的HTTP方法绑定到Handlers中,支持POST/PUT等常用Restful方法 // gin.Context: Context是gin中的上下文,允许我们在中间件之间传递变量 // 管理流、验证JSON请求、响应json请求等,在gin中包含大量Context的方法 // 例如常用的DefaultQuery、Query、DefaultPostForm、PostForm等 router.GET("/test", func(c *gin.Context) { // 响应json格式类型 // gin.H{}就是一个map[string]interface{} c.JSON(200, gin.H{ "message": "test", }) }) s := &http.Server{ Addr: ":8080", Handler: router, ReadTimeout: 60 * time.Second, WriteTimeout: 60 * time.Second, MaxHeaderBytes: 1 << 20, } s.ListenAndServe() }
&http.Server 和 ListenAndServe
# http.Server type Server struct { Addr string //监听的TCP地址,格式为:8000 Handler Handler // http句柄,实质为ServeHTTP,用于处理程序响应HTTP请求 TLSConfig *tls.Config // 安全传输层协议(TLS)配置 ReadTimeout time.Duration // 允许读取的最大时间 ReadHeaderTimeout time.Duration // 允许读取请求头的最大时间 WriteTimeout time.Duration // 允许写入的最大时间 IdleTimeout time.Duration // 等待的最大时间 MaxHeaderBytes int // 请求头的最大字节数 ConnState func(net.Conn, ConnState) // 指定一个可选的回调函数,当客户端连接时发生变化时调用 ErrorLog *log.Logger //指定一个可选的日志记录器 ... } # ListenAndServe func (srv *Server) ListenAndServe() error { if srv.shuttingDown() { return ErrServerClosed } addr := srv.Addr if addr == "" { addr = ":http" } ln, err := net.Listen("tcp", addr) if err != nil { return err } return srv.Serve(ln) } 开启监听服务,监听TCP网络地址,Addr和调用调用应用程序处理连接上的请求 我们在源码中看到Addr是调用我们在&http.Server中设置的参数,因此我们在 设置时要用&,我们要改变参数的值,因为我们ListenAndServe和其他一些方法 需要用到&http.Server中的参数,他们是相互影响的。
这篇关于Gin框架入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南