gin介绍及helloworld

1. 介绍

  • Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点

  • 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错

  • 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范

2 特性

快速:基于 Radix 树的路由,小内存占用。没有反射。可预测的 API 性能。

支持中间件:传入的 HTTP 请求可以由一系列中间件和最终操作来处理。 例如:Logger,Authorization,GZIP,最终操作 DB。

Crash 处理:Gin 可以 catch 一个发生在 HTTP 请求中的 panic 并 recover 它。这样,你的服务器将始终可用。例如,你可以向 Sentry 报告这个 panic!

JSON 验证:Gin 可以解析并验证请求的 JSON,例如检查所需值的存在。

路由组:更好地组织路由。是否需要授权,不同的 API 版本...... 此外,这些组可以无限制地嵌套而不会降低性能。

错误管理:Gin 提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误。最终,中间件可以将它们写入日志文件,数据库并通过网络发送。

内置渲染:Gin 为 JSON,XML 和 HTML 渲染提供了易于使用的 API。

3. 安装

要安装Gin软件包,您需要安装Go并首先设置Go工作区。

1.首先需要安装Go(需要1.10+版本),然后可以使用下面的Go命令安装Gin。

复制代码
go get -u github.com/gin-gonic/gin

2.将其导入您的代码中:

复制代码
import "github.com/gin-gonic/gin"

3.(可选)导入net/http。例如,如果使用常量,则需要这样做http.StatusOK。

复制代码
import "net/http"

4. 从零到无第一个项目

复制代码
C:\Users\leell\go\src>mkdir gin-test
C:\Users\leell\go\src\gin-test>cd gin-test
C:\Users\leell\go\src\gin-test>go mod init gin-test
C:\Users\leell\go\src\gin-test>go get -u github.com/gin-gonic/gin
go: downloading github.com/bytedance/sonic v1.9.1
go: downloading github.com/ugorji/go v1.2.12
go: downloading github.com/ugorji/go/codec v1.2.12
...

新建main.go

复制代码
package main

import (
    "net/http"

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

func main() {
    // 1.创建路由
   r := gin.Default()
   // 2.绑定路由规则,执行的函数
   // gin.Context,封装了request和response
   r.GET("/", func(c *gin.Context) {
      c.String(http.StatusOK, "hello World!")
   })
   // 3.监听端口,默认在8080
   // Run("里面不指定端口号默认为8080") 
   r.Run(":8000")
}

通过命令:

复制代码
go mod tidy
go run main.go
相关推荐
q***78375 小时前
【Golang】——Gin 框架中间件详解:从基础到实战
中间件·golang·gin
嘿嘿1 天前
使用 Gin 框架加载 HTML 模板:`LoadHTMLGlob` 和 `LoadHTMLFiles` 的比较与优化
后端·go·gin
q***71082 天前
【Golang】——Gin 框架中的表单处理与数据绑定
microsoft·golang·gin
天然玩家2 天前
【技术选型】Go后台框架选型
golang·gin·echo·fiber·fasthttp
q***75604 天前
【Golang】——Gin 框架中间件详解:从基础到实战
中间件·golang·gin
月屯7 天前
平台消息推送(go)
数据库·后端·golang·cocoa·iphone·gin
百***41668 天前
Go-Gin Web 框架完整教程
前端·golang·gin
风无雨8 天前
gin学习
学习·gin
疯狂的程需猿8 天前
企业级的Gin模板项目
gin
资深web全栈开发10 天前
Gin 框架最佳实践:构建可维护的 Go Web 应用
golang·gin