Gin教程--Gin初始(一)

Gin教程–Gin初识(一)

一、Gin介绍

1.1 什么是Gin?

Gin是一个使用Go语言开发的Web框架。

 

1.2 Gin有什么特点?

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

  2. 支持中间件
    传入的HTTP请求可以由一系列中间件和最终操作来处理。

  3. Crash处理
    Gin可以catch一个发生在HTTP请求中的panic并recover它。这样,你的服务器将始终可用。

  4. JSON验证
    Gin可以解析并验证请求的JSON。

  5. 路由组
    Gin帮助您更好地组织您的路由。此外,路由分组可以无限嵌套而不降低性能。

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

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

  8. 可扩展性
    新建一个中间件非常简单。

 

1.3 Gin可以做什么?

  1. 开发API
  2. 直接在框架中

 
 
 

二、开发环境

序号 名称 内容 版本号 备注
1 window 系统 V10
2 git 代码管理工具 V2.37.0
3 golang 语言环境 V1.16.3
4 gin v1.9.0

 
 
 

三、开始项目

3.1 创建一个项目并初始化Git和Go Mod

# 初始化git仓库
git init

# 初始化go mod
go mod init

# 添加go的gin包
go get github.com/gin-gonic/gin

添加.gitignore文件

.idea
.env

vendor/
build/
runtime/

 

3.2 开始创建项目子文件夹

app
开发使用的文件夹,app下创建控制器文件夹(controllers)、模型文件夹(models)、帮助文件夹(helpers)、中间件文件夹(middlewares)、路由文件夹(routers)、脚本文件夹(script)

build
打包文件夹

cmd
命令行文件夹

config
配置文件存储

public
公共资源存储,一般是存放图片、csv、Excel等文件

runtime
运行文件夹,存储一些log等

vendor
存储引入的包

 

3.3 添加第一个Golang主文件

项目根目录下创建main.go文件

package main

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

func setupRouter() *gin.Engine {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong")
	})
	return r
}

func main() {
	r := setupRouter()
	r.Run(":8080")
}

 

3.4 运行程序

go run main.go

 

3.5 测试

创建测试用例

package main

import (
	"net/http"
	"net/http/httptest"
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestPingRoute(t *testing.T) {
	router := setupRouter()

	w := httptest.NewRecorder()
	req, _ := http.NewRequest("GET", "/ping", nil)
	router.ServeHTTP(w, req)

	assert.Equal(t, 200, w.Code)
	assert.Equal(t, "pong", w.Body.String())
}

 

3.6 项目打包

# Windows
go build -o build/ZhaoGodService.exe main.go

# Linux
go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64
go build -o build/ZhaoGodService main.go

 
 
 
更多内容请去公众号【老罗分享】获取
Gin教程--Gin初始(一)_第1张图片

你可能感兴趣的:(Golang,gin,git,github)