> Gin 是一個用 輕量級高性能的web 框架,特別適合寫API類程序,要求Go 1.6及以上版本
[TOC]
## 下載安裝包
~~~
go get -u github.com/gin-gonic/gin
~~~
## 簡單的http server例子
> 運行該例子前,需進入該項目后,初始化mod文件`go mod init`,再`go run main.go`
~~~
package main
import "github.com/gin-gonic/gin"
func main() {
// 初始化一個http服務對象
r := gin.Default()
// 設置一個get請求的路由,url為/ping, 處理函數(或者叫控制器函數)是一個閉包函數。
r.GET("/ping", func(c *gin.Context) {
// 通過請求上下文對象Context, 直接往客戶端返回一個json
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // 監聽并在 0.0.0.0:8080 上啟動服務
}
~~~
## 規劃項目結構
> Gin沒有對項目結構做限制,我們可以根據自己項目需要自行設計
~~~
├── conf #項目配置文件目錄
│ └── config.toml #大家可以選擇自己熟悉的配置文件管理工具包例如:toml、xml等等
├── controllers #控制器目錄,按模塊存放控制器(或者叫控制器函數),必要的時候可以繼續劃分子目錄。
│ ├── food.go
│ └── user.go
├── main.go #項目入口,這里負責Gin框架的初始化,注冊路由信息,關聯控制器函數等。
├── models #模型目錄,負責項目的數據存儲部分,例如各個模塊的Mysql表的讀寫模型。
│ ├── food.go
│ └── user.go
├── static #靜態資源目錄,包括Js,css,jpg等等,可以通過Gin框架配置,直接讓用戶訪問。
│ ├── css
│ ├── images
│ └── js
├── logs #日志文件目錄,主要保存項目運行過程中產生的日志。
└── views #視圖模板目錄,存放各個模塊的視圖模板,當然有些項目只有api,是不需要視圖部分,可以忽略這個目錄
└── index.html
~~~
## Gin框架運行模式
> 為方便調試,Gin 框架在運行的時候默認是debug模式,在控制臺默認會打印出很多調試日志,上線的時候我們需要關閉debug模式,改為release模式。
### 通過環境變量設置
~~~
export GIN_MODE=release
~~~
### 通過代碼設置
> 在main函數,初始化gin框架的時候執行下面代碼
~~~
// 設置 release模式
gin.SetMode(gin.ReleaseMode)
// 或者 設置debug模式
gin.SetMode(gin.DebugMode)
~~~
- 基礎知識
- 開發環境
- 包名規則
- 包初始化 (init)
- 基礎數據類型
- 基礎類型轉換
- 格式化輸出
- go指針
- 流程控制語句
- 函數定義
- 匿名函數
- 數組和切片
- map集合
- 結構體
- Interface接口
- 日期處理
- 數學計算
- 正則表達式
- 協程 (并發處理)
- channel
- waitgroup
- mutex (鎖機制)
- websocket
- protobuf
- Redis
- 錯誤處理
- 打包程序
- NSQ消息隊列
- 單元測試
- beego
- 安裝入門
- Gin
- 快速入門
- 路由與控制器
- 處理請求參數
- 表單驗證
- 處理響應結果
- 渲染HTML模版
- 訪問靜態文件
- Gin中間件
- Cookie處理
- Session處理
- Gin上傳文件
- swagger
- pprof性能測試
- GORM
- 入門教程
- 模型定義
- 數據庫連接
- 插入數據
- 查詢數據
- 更新數據
- 刪除數據
- 事務處理
- 關聯查詢
- 屬于 (BELONG TO)
- 一對一 (Has One)
- 一對多 (Has Many)
- 多對多 (Many to Many)
- 預加載 (Preloading)
- 錯誤處理
- 第三方常用插件
- viper 讀取配置文件
- zap 高性能日志
- Nginx代理配置
- Goland 快捷鍵