Go后端整洁架构项目使用教程

Go后端整洁架构项目使用教程

go-backend-clean-architecture-chi A Go (Golang) Backend Clean Architecture project with Chi, MongoDB, JWT Authentication Middleware, Test, and Docker. 项目地址: https://gitcode.com/gh_mirrors/go/go-backend-clean-architecture-chi

1. 项目的目录结构及介绍

该项目是一个使用Go语言编写的后端服务,采用整洁架构(Clean Architecture)设计,利用Chi作为HTTP框架,以及MongoDB作为数据库。以下是项目的目录结构及其简单介绍:

.
├── Dockerfile          # Docker构建文件,用于容器化应用
├── api                # API相关代码,包括控制器、中间件和路由
│   ├── controller     # 控制器目录,处理HTTP请求和响应
│   ├── middleware     # 中间件目录,例如JWT认证中间件
│   └── route          # 路由目录,定义API端点
├── bootstrap          # 项目启动相关代码
│   ├── app.go         # 应用启动逻辑
│   ├── database.go    # 数据库初始化和连接逻辑
│   └── env.go         # 环境变量加载逻辑
├── cmd                # 主应用程序入口
│   └── main.go        # 程序入口文件
├── docker-compose.yaml # Docker Compose文件,用于定义和运行多容器Docker应用
├── domain             # 业务领域模型和错误定义
├── go.mod             # Go依赖管理文件
├── go.sum             # Go依赖校验文件
├── internal           # 内部工具和库
│   └── tokenutil      # JWT token工具函数
├── mongo              # MongoDB数据库操作封装
├── repository         # 数据访问层,包含数据库操作接口和实现
├── usecase            # 应用逻辑层,包含业务逻辑接口和实现
└── ...

2. 项目的启动文件介绍

项目的启动文件位于cmd目录下的main.go文件。这个文件是程序的入口点,其主要职责是初始化和配置应用程序,然后启动HTTP服务器。

以下是main.go的主要部分:

package main

import (
    "go-backend-clean-architecture-chi/bootstrap"
)

func main() {
    // 初始化应用程序
    app := bootstrap.NewApp()
    
    // 启动HTTP服务器
    app.Run()
}

在这里,bootstrap.NewApp()函数负责创建和配置应用程序实例。app.Run()则启动HTTP服务器,开始接收和处理HTTP请求。

3. 项目的配置文件介绍

项目的配置文件采用.env文件格式,通过viper包加载。.env文件位于项目根目录,包含应用程序运行所需的环境变量。

以下是.env文件的一个示例:

DB_HOST=localhost
DB_PORT=27017
DB_NAME=go_backend
JWT_SECRET=your_secret_key
APP_PORT=8080

这些变量包括:

  • DB_HOST: MongoDB数据库的地址。
  • DB_PORT: MongoDB数据库的端口。
  • DB_NAME: MongoDB数据库名称。
  • JWT_SECRET: 用于JWT token签名的密钥。
  • APP_PORT: 应用程序监听的端口。

项目在启动时会加载这些配置,以便在不同的环境(开发、测试、生产)中使用不同的配置值。

go-backend-clean-architecture-chi A Go (Golang) Backend Clean Architecture project with Chi, MongoDB, JWT Authentication Middleware, Test, and Docker. 项目地址: https://gitcode.com/gh_mirrors/go/go-backend-clean-architecture-chi

你可能感兴趣的:(Go后端整洁架构项目使用教程)