Gin框架

2023-01-30 00:00:03

技术

Gin是一个使用Go语言开发的Web框架。 它提供类似Martini的API,但性能更佳,速度提升高达40倍。 如果你是性能和高效的追求者, 你会爱上 Gin。

Gin 简单使用

在这之前我们需要初始化项目

go mod init ginstudy

如果使用goland应该在项目创建时就会初始化并创建go.mod文件,我使用的vs code需要自己初始化项目

gin框架 官方文档

下载并安装 gin:

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

项目引入gin

import "github.com/gin-gonic/gin"
package main

import (
    "github.com/gin-gonic/gin"
)

func sayHello(c *gin.Context) {
    //返回和json格式的数据,状态码为200
    /* gin.H
    //H is a shortcut for map[string]interface{}   key为string类型,value为任意类型
    type H map[string]any
    */
    c.JSON(200, gin.H{
        "message": "hello golang",
    })
}
func main() {
    //创建一个默认的路由引擎 *gin.Engine
    r := gin.Default()
    // GET:GET请求方式;  /hello:请求的路径
    // 当客户端以GET方式请求/hello路径时,会执行后面的函数sayHello
    r.GET("/hello", sayHello)

    //启动服务,在指定端口监听
    r.Run(":9090")
}

//运行
//访问localhost:9090/hello,显示{"message":"hello golang"}

RESTfulAPI

在main()中加入以下请求方法

    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",
        })
    })

通过浏览器访问只能使用GET和POST请求,使用api测试工具进行测试 api工具有postman、apipost、apifox等,我这里使用apipost测试