No Description

zhangqian 498e1581a8 初始化 10 months ago
.idea 498e1581a8 初始化 10 months ago
.lingma 498e1581a8 初始化 10 months ago
config 498e1581a8 初始化 10 months ago
database 498e1581a8 初始化 10 months ago
entity 498e1581a8 初始化 10 months ago
handler 498e1581a8 初始化 10 months ago
middleware 498e1581a8 初始化 10 months ago
model 498e1581a8 初始化 10 months ago
routes 498e1581a8 初始化 10 months ago
service 498e1581a8 初始化 10 months ago
utils 498e1581a8 初始化 10 months ago
README.md 498e1581a8 初始化 10 months ago
app.log 498e1581a8 初始化 10 months ago
go.mod 498e1581a8 初始化 10 months ago
go.sum 498e1581a8 初始化 10 months ago
main.go 498e1581a8 初始化 10 months ago

README.md

Newaterobot Process 项目

这是一个基于 Go 语言和 Gin 框架的后端项目,包含完整的项目架构设计。

项目结构

newaterobot-process/
├── config/          # 配置文件目录
├── database/        # 数据库初始化
├── entity/          # 实体层(数据模型)
├── handler/         # 控制器层(处理HTTP请求)
├── middleware/      # 中间件
├── model/           # 模型层(数据访问)
├── routes/          # 路由配置
├── service/         # 服务层
├── utils/           # 工具包
├── go.mod           # Go模块文件
└── main.go          # 程序入口

技术栈

  • Web框架: Gin
  • 配置文件格式: YAML
  • 数据库: MySQL
  • ORM框架: GORM
  • JWT认证: github.com/golang-jwt/jwt/v4
  • 密码加密: golang.org/x/crypto/bcrypt

配置说明

config/config.yaml 文件中配置以下内容:

server:
  port: 8080

mysql:
  host: 127.0.0.1
  port: 3308
  username: root
  password: Greentech20200508**1
  dbname: ws_deepseek
  charset: utf8mb4
  parseTime: True
  loc: Local

jwt:
  secret: newaterobot_secret
  expire: 3600

主要功能

  1. 用户注册和登录
  2. JWT Token 认证
  3. 用户信息获取
  4. 日志记录
  5. HTTP 请求工具
  6. 常用工具函数

快速开始

  1. 确保已安装 Go 1.21+
  2. 创建 MySQL 数据库:

    CREATE DATABASE IF NOT EXISTS ws_deepseek CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  3. 修改 config/config.yaml 中的数据库配置

  4. 运行以下命令启动服务:

    # 设置代理(如果需要)
    set GOPROXY=https://goproxy.cn,direct
    
    # 安装依赖
    go mod tidy
    
    # 运行程序
    go run main.go
    

API 接口

用户注册

POST /api/v1/register
Content-Type: application/json

{
  "username": "testuser",
  "password": "password123",
  "email": "test@example.com",
  "nickname": "Test User"
}

用户登录

POST /api/v1/login
Content-Type: application/json

{
  "username": "testuser",
  "password": "password123"
}

获取用户信息(需要认证)

GET /api/v1/user/info
Authorization: Bearer <token>

中间件

JWT 认证中间件会拦截需要认证的路由,验证请求头中的 token。

工具包

  • 日志记录: utils/logger.go
  • HTTP 客户端: utils/http.go
  • 常用函数: utils/common.go