Go-Gecko 项目教程
1. 项目的目录结构及介绍
go-gecko/
├── cmd/
│ └── main.go
├── config/
│ └── config.yaml
├── internal/
│ ├── api/
│ ├── models/
│ └── services/
├── pkg/
│ ├── utils/
│ └── middleware/
├── .gitignore
├── go.mod
├── go.sum
└── README.md
目录结构介绍
- cmd/: 包含项目的启动文件
main.go
。 - config/: 包含项目的配置文件
config.yaml
。 - internal/: 包含项目的内部逻辑,如 API 处理、数据模型和服务层。
- api/: 处理 API 请求和响应。
- models/: 定义数据模型。
- services/: 包含业务逻辑服务。
- pkg/: 包含项目的公共包,如工具函数和中间件。
- utils/: 包含各种工具函数。
- middleware/: 包含中间件逻辑。
- .gitignore: 指定 Git 忽略的文件和目录。
- go.mod: Go 模块定义文件。
- go.sum: Go 模块依赖的校验文件。
- README.md: 项目说明文档。
2. 项目的启动文件介绍
cmd/main.go
main.go
是项目的启动文件,负责初始化配置、加载依赖并启动应用程序。以下是 main.go
的基本结构:
package main
import (
"fmt"
"log"
"os"
"github.com/superoo7/go-gecko/config"
"github.com/superoo7/go-gecko/internal/api"
)
func main() {
// 加载配置
cfg, err := config.LoadConfig("config/config.yaml")
if err != nil {
log.Fatalf("无法加载配置文件: %v", err)
}
// 初始化 API 服务
apiServer := api.NewServer(cfg)
// 启动 API 服务
if err := apiServer.Start(); err != nil {
log.Fatalf("无法启动 API 服务: %v", err)
}
}
启动文件功能
- 加载配置: 通过
config.LoadConfig
函数加载配置文件config.yaml
。 - 初始化 API 服务: 使用加载的配置初始化 API 服务。
- 启动 API 服务: 启动 API 服务并监听请求。
3. 项目的配置文件介绍
config/config.yaml
config.yaml
是项目的配置文件,包含应用程序的各种配置参数。以下是一个示例配置文件的内容:
server:
port: 8080
host: "0.0.0.0"
database:
host: "localhost"
port: 5432
user: "user"
password: "password"
name: "dbname"
log:
level: "info"
file: "app.log"
配置文件参数介绍
- server: 服务器配置
- port: 服务器监听的端口。
- host: 服务器监听的主机地址。
- database: 数据库配置
- host: 数据库主机地址。
- port: 数据库端口。
- user: 数据库用户名。
- password: 数据库密码。
- name: 数据库名称。
- log: 日志配置
- level: 日志级别(如
info
,debug
,error
)。 - file: 日志文件路径。
- level: 日志级别(如
通过以上配置文件,项目可以灵活地调整运行时的各种参数,以适应不同的环境和需求。