Gin REST API 示例项目教程
1. 项目的目录结构及介绍
gin-rest-api-sample/
├── cmd/
│ └── server/
│ └── main.go
├── config/
│ └── config.go
├── docs/
├── internal/
│ └── handlers/
│ └── handlers.go
├── migrations/
├── pkg/
│ └── utils/
│ └── utils.go
├── tools/
├── .gitignore
├── Makefile
├── README.md
├── api.md
├── docker-compose.yaml
├── go.mod
├── go.sum
目录结构介绍
- cmd/server/: 包含项目的启动文件
main.go
。 - config/: 包含项目的配置文件
config.go
。 - docs/: 包含项目的文档文件。
- internal/handlers/: 包含处理请求的处理器文件
handlers.go
。 - migrations/: 包含数据库迁移文件。
- pkg/utils/: 包含项目使用的工具函数文件
utils.go
。 - tools/: 包含项目使用的工具文件。
- .gitignore: Git 忽略文件。
- Makefile: 包含项目的构建命令。
- README.md: 项目说明文件。
- api.md: API 文档文件。
- docker-compose.yaml: Docker 配置文件。
- go.mod: Go 模块文件。
- go.sum: Go 模块依赖校验文件。
2. 项目的启动文件介绍
cmd/server/main.go
package main
import (
"gin-rest-api-sample/config"
"gin-rest-api-sample/internal/handlers"
"github.com/gin-gonic/gin"
)
func main() {
// 加载配置
cfg := config.LoadConfig()
// 创建 Gin 引擎
r := gin.Default()
// 注册路由
handlers.RegisterRoutes(r)
// 启动服务器
r.Run(cfg.ServerAddress)
}
启动文件介绍
- 加载配置: 通过
config.LoadConfig()
加载项目的配置。 - 创建 Gin 引擎: 使用
gin.Default()
创建 Gin 引擎实例。 - 注册路由: 调用
handlers.RegisterRoutes(r)
注册路由。 - 启动服务器: 调用
r.Run(cfg.ServerAddress)
启动服务器。
3. 项目的配置文件介绍
config/config.go
package config
import (
"log"
"os"
"github.com/joho/godotenv"
)
type Config struct {
ServerAddress string
DatabaseURL string
}
func LoadConfig() *Config {
// 加载环境变量文件
err := godotenv.Load()
if err != nil {
log.Fatal("Error loading .env file")
}
// 读取环境变量
return &Config{
ServerAddress: os.Getenv("SERVER_ADDRESS"),
DatabaseURL: os.Getenv("DATABASE_URL"),
}
}
配置文件介绍
- 加载环境变量文件: 使用
godotenv.Load()
加载.env
文件。 - 读取环境变量: 从环境变量中读取
SERVER_ADDRESS
和DATABASE_URL
。 - 返回配置结构体: 返回包含服务器地址和数据库 URL 的配置结构体。
以上是 Gin REST API 示例项目的目录结构、启动文件和配置文件的介绍。希望这份教程能帮助你更好地理解和使用该项目。