Gin框架学习(七)

简介: 来这里学Gin框架,目标明确不迷茫。

学习思维导图

Gin框架思维导图

互动

五一啦,祝大家五一劳动节快乐!
受疫情影响没法出门的话,可以来学习,加油加油!

进阶篇

restgate

安全认证中间件通过restgate来实现

package main
import (
    "github.com/gin-gonic/gin"
    "github.com/pjebs/restgate"
    "net/http"
)
//设置验证
func Safemiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        gate := restgate.New("New_Key",
            "New_Secret",
            restgate.Static,
            restgate.Config{
                Key:                []string{"user", "KeyOK"},
                Secret:             []string{"pwd", "SecretOK"},
                //关闭https验证
                HTTPSProtectionOff: true,
            })
        Called:=false
        Adapter:= func(http.ResponseWriter, *http.Request) {
            Called=true
            c.Next()
        }
        //代理
        gate.ServeHTTP(c.Writer,c.Request,Adapter)
        if Called==false {
            c.AbortWithStatus(401)
        }
    }
}
func main() {
    r:=gin.Default()
    r.Use(Safemiddleware())
    //进行验证
    r.GET("/", func(c *gin.Context) {
        res:= struct {
            Code int `json:"code"`
            Msg string `json:"msg"`
            Data interface{} `json:"data"`
        }{http.StatusOK,"验证通过","OK"}
        c.JSON(http.StatusOK,res)
    })
    r.Run()
}

解析模板

解析模板html渲染
main.go

package main
import (
    "github.com/gin-gonic/gin"
    "net/http"
)
func main() {
    r := gin.Default()
    // 模板解析
    r.LoadHTMLFiles("templates/index.html")
    r.GET("/", func(c *gin.Context){
        // 模板渲染
        c.HTML(http.StatusOK, "index.html", gin.H{
            "title": "Welcome Gin",
        })
    })
    r.Run()
}

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{ .title }}
</body>
</html>

静态资源

静态文件与静态文件夹用法
main.go

package main
import (
    "github.com/gin-gonic/gin"
    "net/http"
)
func main() {
    r := gin.Default()
    //只加载html资源
    r.LoadHTMLFiles("templates/index.html")
    //静态资源的路径是以/static开头的,寻找static目录下文件
    //如果静态资源的路径是以/web开头的,寻找web目录下文件
    r.Static("/static", "./static")
    //r.StaticFS("/static", http.Dir("./static"))
    //r.StaticFile("/favicon.ico", "./favicon.ico")
    r.GET("/index", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.html", gin.H{
            "title": "Welcome Gin",
        })
    })
    r.Run()
}

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{ .title }}
</body>
</html>

后记

喜欢的话可以三连,后续继续更新其他内容,帮忙推一推,感谢观看!

相关文章
|
11月前
|
Go API 网络架构
Gin框架快速入门1
Gin框架快速入门1
107 0
|
SQL 关系型数据库 MySQL
gin框架学习-Gorm入门指南
Snake Case命名风格,就是各个单词之间用下划线(_)分隔,首字母大写区分一个单词,例如: CreateTime的Snake Case风格命名为create_time
414 0
gin框架学习-Gorm入门指南
|
4月前
|
Go
gin初体验
gin初体验
|
4月前
|
JSON 中间件 API
Gin框架笔记(一) Gin框架的安装与Hello World
Gin框架笔记(一) Gin框架的安装与Hello World
143 0
|
4月前
|
JSON 中间件 数据格式
Gin框架学习笔记(六)——gin中的日志使用
Gin框架学习笔记(六)——gin中的日志使用
148 0
|
4月前
|
前端开发 中间件 关系型数据库
|
4月前
|
JSON 前端开发 Java
|
Go API
gin框架学习-快速安装gin
Gin 是一个用 Go (Golang) 编写的 Web 框架,由于 httprouter,它具有 martini 的 API,性能提高了 40 倍。具有高性能的优点。
160 0
gin框架学习-快速安装gin
|
JSON 前端开发 关系型数据库
gin框架学习-Gin框架和Gorm框架搭建一个简单的API微服务
创建包管理工具,此命令会在当前目录中初始化和创建一个新的go.mod文件,手动创建go.mod文件再包含一些module声明也等同该命令,而go mod init命令便是帮我们简便操作,可以帮助我们自动创建。
603 0
gin框架学习-Gin框架和Gorm框架搭建一个简单的API微服务
|
开发工具
基于Gin封装Web框架 - 3. 初始化 rum 框架
基于Gin封装Web框架 - 3. 初始化 rum 框架
185 0
基于Gin封装Web框架 - 3. 初始化 rum 框架