Gin是一个非常受欢迎的Golang Web框架,在GitHub上已经有47k的星星,它和Golang的语法一样简洁明了,使得初学者得以迅速入门。
一.使用gin框架的准备
(1)下载gin(找gin的官方文档)
$ go get -u github.com/gin-gonic/gin
(2)安装Postman
官网下载
二.初始gin
(1)使用gin编写一个接口
package main
import (
"github.com/gin-gonic/gin"
)
func Index(context *gin.Context) {
context.String(200, "Hello 枫枫!")
}
func main() {
//1.创建一个默认路由
router := gin.Default()
//2.绑定路由规则和路由函数,访问/index的路由,将由对应的函数去处理
router.GET("/index", Index)
//3.启动监听,gin会把web服务运行在本机的0.0.0.0:8080端口上,0.0.0.0代表本机所有IP
router.Run("0.0.0.0:8080")
// 用原生http服务的方式, router.Run本质就是http.ListenAndServe的进一步封装
//http.ListenAndServe(":8080", router)
}
三.响应
(1)响应json(重点)
package main
import (
"github.com/gin-gonic/gin"
)
func _string(c *gin.Context) {
//状态码:200表示正常响应,这个位置也可以写http.StatusOK,这两个是一样的
c.String(200, "你好呀")
}
func _json(c *gin.Context) {
//json响应结构体
type UserInfo struct {
UserName string `json:"user_name"` //json的作用是使输出结果变为{"user_name":"枫枫","age":23},不加json,输出结果为{"UserName":"枫枫","Age":23}
Age int `json:"age"`
Password string `json:"-"`
//忽略转换为json,即在json后加-,这样密码就不会显示出来,输出结果为{"user_name":"枫枫","age":23},
//若不加json,则输出结果为{"user_name":"枫枫","age":23,"Password":"123456"},这样密码就显示出来了,这是不安全的,所以用这种格式`json:"-"`
}
//实例化
user := UserInfo{"枫枫", 23, "123456"}
c.JSON(200, user)
//json响应map
/*userMap := map[string]string{
"user_name": "枫枫",
"Age": "23",
}
c.JSON(200, userMap)*/
//直接响应json
//c.JSON(200, gin.H{"username": "枫枫", "age": 23})
}
func main() {
router := gin.Default()
router.GET("/", _string)
router.GET("/json", _json)
router.Run(":80")
}
本文主要介绍了gin框架的一些用法,并通过例子进行了进一步理解,更多内容可以在官网上搜索。