-
package main import ( "go-ranking/router" ) func main() { r := router.Router() r.Run(":9999") }package router import ( "github.com/gin-gonic/gin" "net/http" ) // Router 路由,这里方法名要大写,因为要导出出去,在别的包里使用 func Router() *gin.Engine { r := gin.Default() userGroup := r.Group("/user") // 注意这里,他们不是一起的。 { userGroup.GET("/list", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "list"}) }) userGroup.POST("/create", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "create"}) }) userGroup.DELETE("/delete", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "delete"}) }) userGroup.PATCH("/patch", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "patch "}) }) userGroup.PUT("/put", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "put "}) }) } return r }对核心代码做一些解释
• 函数声明:
• func Router() 表示定义一个名为 Router 的函数。
• 返回值 *gin.Engine 表示这个函数返回一个指向 gin.Engine 实例的指针,gin.Engine 是 Gin 框架的核心路由器。
• *gin.Engine:
• gin.Engine 是 Gin 的核心类型,代表整个 HTTP 路由器和中间件系统。
• 通过 gin.Engine 实例,可以定义应用的路由、请求处理逻辑、中间件等。
查看全部 -
1. 初始化项目
// 目录 mkdir go-ranking cd go-ranking // 初始化项目
2.依赖下载
go get -u github.com/gin-gonic/gin
首次安装模块:安装指定的模块及其依赖。
更新已安装的模块:如果模块已经安装,-u 参数会更新到最新版本,并将依赖也更新到最新
解释一下 gin 是什么
Gin 是一个用 Go(Golang)编写的轻量级 Web 框架,专门用于构建高性能的 HTTP Web 应用和 RESTful API。Gin 的设计灵感来源于 Python 的 Flask 框架,提供了简洁易用的 API,能够快速地构建 Web 应用和服务。它是 Go 语言社区中使用广泛的 Web 框架之一。
Gin 的主要特点
1. 高性能:Gin 使用了 net/http 标准库构建,优化了路由处理性能,适合需要高并发的场景。
2. 简洁易用:Gin 提供了简单的接口,代码风格清晰,可以用很少的代码实现复杂的 API 逻辑。
3. 中间件支持:Gin 支持中间件机制,可以自定义日志、错误处理、认证等操作,增加了灵活性。
4. 路由功能强大:支持参数化路由、分组路由等功能,使代码结构更清晰,管理路由更方便。
5. JSON 处理便捷:Gin 内置了 JSON 序列化与反序列化操作,适合构建 JSON API。
3. 第一个Web程序:
package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" ) func main() { fmt.Println("Hello World") r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "message": "Pong", }) }) r.Run(":9999") }4. 访问http://127.0.0.1:9999/ping 返回
{ "message": "Pong" }That's all
注意这里
查看全部 -
defer:延迟执行,先defer的后执行
panic 程序直接终止
recover在defer中执行,让程序恢复正常的状态去执行
查看全部 -
3-4章节大纲课后复习大纲
如何获取get方式xxx?id=xxx&name=xxx中的id和name
如何获取post方式请求的body中的表单对象
如何获取post方式请求的body中的json对象(map和结构体两种方式获取)
查看全部 -
记录下来查看全部 -
还可以
查看全部 -
不错
查看全部 -
1
查看全部 -
记录一下,很有帮助

查看全部
举报