一.Gin框架介绍与基本使用
一.Gin框架介绍与基本使用
1.基本介绍
- Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点
- 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的
net/http
足够简单,性能也非常不错 - 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范
- 由于使用了
httprouter
,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin
.
2.Gin框架安装与使用
安装
- 下载安装Gin:
go get -u github.com/gin-gonic/gin
- 将其导入您的代码中:
import "github.com/gin-gonic/gin"
-
(可选)导入net/http。例如,如果使用常量,则需要这样做http.StatusOK。
import "net/http"
简单示例
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
// 1.创建路由
r:=gin.Default()
// 2. 绑定路由规则
// gin.Context,封装了request和response
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK,"hello world")
})
// 3.监听端口,默认8080
// run("里面不指定端口号默认为8080")
r.Run(":8000")
}
3.RESTful API规范
REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”或“表现层状态转化”。
推荐阅读:阮一峰 理解RESTful架构
简单来说,REST的含义就是客户端与Web服务器之间进行交互的时候,使用HTTP协议中的4个请求方法代表不同的动作。
GET
用来获取资源POST
用来新建资源PUT
用来更新资源DELETE
用来删除资源。
只要API程序遵循了REST规范,那就可以称为RESTful API。目前在前后端分离的架构中,前后端基本都是通过RESTful API来进行交互。
简单示例
比如,编写一个图书管理系统,,我们可以查询对一本书进行查询、创建、更新和删除等操作,我们在编写程序的时候就要设计客户端浏览器与我们Web服务端交互的方式和路径。按照经验我们通常会设计成如下模式:
请求方法 | URL | 含义 |
---|---|---|
GET | /book | 查询书籍信息 |
POST | /create_book | 创建书籍记录 |
POST | /update_book | 更新书籍信息 |
POST | /delete_book | 删除书籍信息 |
同样的需求我们按照RESTful API设计如下:
请求方法 | URL | 含义 |
---|---|---|
GET | /book | 查询书籍信息 |
POST | /book | 创建书籍记录 |
PUT | /book | 更新书籍信息 |
DELETE | /book | 删除书籍信息 |
Gin框架支持开发RESTful API的开发。
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
// 1.创建路由
r:=gin.Default()
// 2. 绑定路由规则
// gin.Context,封装了request和response
// 查
r.GET("/book", func(c *gin.Context) {
c.JSON(200,gin.H{
"message":"GET",
})
})
// 增
r.POST("/book", func(c *gin.Context) {
c.JSON(200,gin.H{
"message":"POST",
})
})
// 改
r.PUT("/book", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "PUT",
})
})
// 删
r.DELETE("/book", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "DELETE",
})
})
// 3.监听端口,默认8080
// run("里面不指定端口号默认为8080")
r.Run(":8000")
}
然后访问地址:http://127.0.0.1:8000/book
开发RESTful API的时候我们通常使用Postman来作为客户端的测试工具。