Wharf 开源项目使用教程
1. 项目目录结构及介绍
wharf/
├── cmd/
│ ├── wharf/
│ │ └── main.go
├── internal/
│ ├── api/
│ ├── config/
│ ├── models/
│ ├── services/
│ └── utils/
├── pkg/
│ ├── auth/
│ ├── database/
│ ├── logger/
│ └── middleware/
├── configs/
│ └── config.yaml
├── go.mod
├── go.sum
└── README.md
目录结构介绍
- cmd/: 包含项目的入口文件,通常是
main.go
。 - internal/: 包含项目的内部逻辑,如 API 处理、配置管理、数据模型、服务层和工具函数。
- pkg/: 包含项目的公共包,如认证、数据库连接、日志记录和中间件。
- configs/: 包含项目的配置文件,如
config.yaml
。 - go.mod 和 go.sum: Go 模块文件,用于管理项目的依赖。
- README.md: 项目的说明文档。
2. 项目启动文件介绍
cmd/wharf/main.go
main.go
是项目的入口文件,负责初始化配置、启动服务等操作。以下是 main.go
的基本结构:
package main
import (
"fmt"
"log"
"net/http"
"github.com/itchio/wharf/internal/config"
"github.com/itchio/wharf/internal/api"
)
func main() {
// 加载配置
cfg, err := config.LoadConfig("configs/config.yaml")
if err != nil {
log.Fatalf("无法加载配置文件: %v", err)
}
// 初始化 API 路由
router := api.NewRouter(cfg)
// 启动 HTTP 服务
log.Printf("服务启动,监听端口 %s", cfg.Server.Port)
if err := http.ListenAndServe(fmt.Sprintf(":%s", cfg.Server.Port), router); err != nil {
log.Fatalf("服务启动失败: %v", err)
}
}
启动步骤
- 加载配置: 通过
config.LoadConfig
函数加载配置文件configs/config.yaml
。 - 初始化 API 路由: 使用
api.NewRouter
函数初始化 API 路由。 - 启动 HTTP 服务: 使用
http.ListenAndServe
启动 HTTP 服务,监听配置文件中指定的端口。
3. 项目配置文件介绍
configs/config.yaml
config.yaml
是项目的配置文件,包含服务的基本配置信息。以下是一个示例配置文件:
server:
port: "8080"
host: "localhost"
database:
host: "localhost"
port: "5432"
user: "user"
password: "password"
name: "dbname"
log:
level: "info"
output: "stdout"
配置项介绍
- server: 服务配置
- port: 服务监听的端口。
- host: 服务监听的主机地址。
- database: 数据库配置
- host: 数据库主机地址。
- port: 数据库端口。
- user: 数据库用户名。
- password: 数据库密码。
- name: 数据库名称。
- log: 日志配置
- level: 日志级别,如
info
,debug
,error
等。 - output: 日志输出方式,如
stdout
,file
等。
- level: 日志级别,如
通过以上配置文件,可以灵活地调整项目的运行参数,满足不同的部署需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考