Gin框架学习(一)

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

学习思维导图

这一期讲解Gin框架的学习思路,分为五大块:
1.入门篇
2.提高篇
3.进阶篇
4.精通篇
5.实战篇(前后端分离)

Gin框架思维导图

入门篇

框架介绍

Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本。具有快速灵活,容错方便等特点。其实对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。

GET请求

package main

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

func main() {
    r:= gin.Default()
    r.GET("/Get",func(context *gin.Context) {
        context.JSON(200,gin.H{
            "message":"get",
        })
    })
    r.Run()
}

POST请求

package main

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

func main() {
    r:= gin.Default()
    r.POST("/Post",func(context *gin.Context) {
        context.JSON(200,gin.H{
            "message":"post",
        })
    })
    r.Run()
}

提高篇

重定向

package main

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

func main() {
    r:= gin.Default()
    r.GET("/Get", func(c *gin.Context) {
        c.Redirect(http.StatusMovedPermanently,"http://www.baidu.com")
    })
    r.GET("/Get2", func(c *gin.Context) {
        c.Request.URL.Path = "/test"
        r.HandleContext(c)
    r.GET("/test2", func(c *gin.Context) {
        c.JSON(http.StatusOK,gin.H{
        "hello":"world"
        })
    })
    r.Run()
}

返回第三方获取的数据

package main

import (
    "github.com/gin-gonic/gin"
)
func main() {
   r := gin.Default()
   r.GET("/test", func(c *gin.Context) {
      response, err := http.Get("https://baidu.com")
      if err != nil || response.StatusCode != http.StatusOK {
         c.Status(http.StatusServiceUnavailable)
         return
      }
      reader := response.Body
      contentLength := response.ContentLength
      contentType := response.Header.Get("Content-Type")
      extraHeaders := map[string]string{
      }
      c.DataFromReader(http.StatusOK, contentLength, contentType, reader, extraHeaders)
   })
   r.Run()
}

后记

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

相关文章
|
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月前
|
JSON 前端开发 Java
|
4月前
|
前端开发 中间件 关系型数据库
|
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 框架