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()
}

后记

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

相关文章
|
6月前
|
Go API 网络架构
Gin框架快速入门1
Gin框架快速入门1
61 0
|
SQL 关系型数据库 MySQL
gin框架学习-Gorm入门指南
Snake Case命名风格,就是各个单词之间用下划线(_)分隔,首字母大写区分一个单词,例如: CreateTime的Snake Case风格命名为create_time
299 0
gin框架学习-Gorm入门指南
|
13天前
|
XML JSON 人工智能
探索Gin框架:Golang Gin框架请求参数的获取
探索Gin框架:Golang Gin框架请求参数的获取
|
API Go 网络架构
Kratos 大乱炖 —— 整合其他Web框架:Gin、FastHttp、Hertz
Kratos默认的RPC框架使用的是gRPC,支持REST和protobuf两种通讯协议。其API都是使用protobuf定义的,REST协议是通过[grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway)转译实现的。使用protobuf定义API是具有极大优点的,具有很强的可读性、可维护性,以及工程性。工程再大,人员再多,也不会乱。 一切看起来都是很美好的。那么,问题来了,我们现在使用的是其他的Web框架,迁移就会有成本,有风险,不可能一下子就把历史存在的代码一口气转换过来到Kratos框架。那我可以在Kratos中整合其他
775 0
|
Go API
gin框架学习-快速安装gin
Gin 是一个用 Go (Golang) 编写的 Web 框架,由于 httprouter,它具有 martini 的 API,性能提高了 40 倍。具有高性能的优点。
132 0
gin框架学习-快速安装gin
|
存储 前端开发
gin框架学习-文件上传
多文件上传就是一次可以上传多个文件,不需要一个文件一个文件上传,这也便于上传文件的人。
183 0
gin框架学习-文件上传
基于Gin封装Web框架 - 3. 初始化 rum 框架
基于Gin封装Web框架 - 3. 初始化 rum 框架
154 0
基于Gin封装Web框架 - 3. 初始化 rum 框架
|
Go PHP
Gin从入门到精通—如何理解安装Gin并在本地运行
Gin从入门到精通—如何理解安装Gin并在本地运行
428 0
Gin从入门到精通—如何理解安装Gin并在本地运行
|
API
Gin框架学习(四)
来这里学Gin框架,目标明确不迷茫。
124 0
Gin框架学习(四)
|
安全 中间件
Gin框架学习(七)
来这里学Gin框架,目标明确不迷茫。
92 0
Gin框架学习(七)

热门文章

最新文章