这是我参与「第五届青训营 」伴学笔记创作活动的第 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
-
访问地址,访问我们的请求 Request Response
-
服务器的端口
- 导入 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…)