学习【Gin】框架 | 青训营笔记

41 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天

Go 是一门快速增长的编程语言,专为构建简单、快速且可靠的软件而设计,golang 提供的 net/http 库已经很好了,对于 http的协议实现非常好,基于 golang 的框架有:

Gin:Go语言编写的 Web 框架,以更好的性能实现类似 Martini 框架的 API

Gin 是一个golang的微框架,封装比较优雅,API 友好,源码注释比较明确。具有快速灵活,容错方便等特点。

Beego:开源的高性能 Go 语言 Web 框架

快速开发,star 比较高。

Iris:全宇宙最快的 Go 语言 Web 框架。完备 MVC 支持,未来尽在掌握。

Gin 安装使用

是一个微框架,对于golang web框架的依赖远比 Python Java之类的要小。自身的net/http足够简单,性能也非常不错。框架更像是一个常用函数或工具集合,借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。

安装 gin

golang 的所有安装都是用 go get

go get 的本质就是 git-clone

把仓库从远地克隆下来到本地即可使用。

go get -u github.com/gin-gonic/gin

image.png

  1. 访问地址,访问我们的请求 Request Response

  2. 服务器的端口

  • 导入 Gin

给网站换个 icon go get "github.com/thinkerou/favicon"

(1) 前后端分离的项目用什么请求?

Restful API

以前写网站

用 get /user ,用 get 的方式去请求 user list

如果创建一个,则需要 post /creat_user 来创建对象

post /update_user 来更新对象

post /delete_user 删除一个对象

只有 get 和 post,所有的增删改都是用 post 来的

RESTful API

通过不同的请求来执行不同的功能

以前是通过 url 和请求来隔离,现在通过四种方式来隔离

查:get /user

提交请求:post /user

修改:put /user

删除:delete /user

同一个请求 放上去,执行不同的方法,就是 RESTful api

用 go 语言去开发 RestfulAPI 是十分简单的,

ginServer.POST("/user")
ginServer.PUT("/user")
ginServer.DELETE("/user")

请求后需要一个匿名函数去接收,测一下是否有问题

加载静态界面

(默认)全局加载:loadHTMLFiles

指定加载:LoadHTMLGlob

//在goLand中,如果你导入的东西没有使用,他都会自动帮你删除。 //创建一个服务

ginServer := gin.Default()

//增加初始化环境

ginServer.Use(favicon.New("./3.4.jpg")) //写图片的地址,最好是icon文件

//加载静态页面

ginServer.LoadHTMLGlob("templates/*")

//响应一个页面给前端

ginServer.GET("./index", func(context *gin.Context) {
   //context.JSON()     json数据
   context.HTML(http.StatusOK, "gin_learn.html", gin.H{
      "msg": "这是go后台传递来的数据",
   })
})

//前后端分离用什么请求? Restful API

//访问地址,处理我们的请求 Request Response //通过server创建一个request或者response请求

ginServer.GET("/hello", func(context *gin.Context) {
   context.JSON(200, gin.H{"msg": "hello,world"})
}) //接收请求后,有一个 function 匿名函数来进行返回

//如何处理请求

ginServer.POST("/user", func(c *gin.Context) {
   c.JSON(200, gin.H{"msg": "post user"})
}) //响应 JSON 数据、响应页面数据
//只能使用 postman 或者 API post进行测试
//ginServer.PUT("/user")
//ginServer.DELETE("/user")

//连接数据库的代码,就可以直接去调用数据库,在下面写逻辑,并返回给前端

//服务器端口,创建服务后,给它一个端口,让其能够跑起来

ginServer.Run(":8082") //指定一个访问地址。不写则默认是8080,与 Java中的SpringBoot类似

参考资源

[Gin框架一小时上手](【【狂神说】Gin框架一小时上手 | 快速转型GoWeb开发 | Go语言零基础教程】 www.bilibili.com/video/BV1Rd…)