From 4f6f308d2376651181389320493b18d22b704df3 Mon Sep 17 00:00:00 2001
From: Table
Date: Sat, 29 Nov 2025 20:13:00 +0800
Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20README=20=E5=92=8C?=
=?UTF-8?q?=20PROJECT=5FSUMMARY=20=E6=96=87=E6=A1=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- README.md 更新:
* 文档生成部分:添加详细的命令说明和使用方法
* 新增 SWAGGER_PORT 配置说明章节,包括变量定义、影响范围、修改方法
* 更新系统接口表格中的 Swagger 描述
* 说明应用内置 Swagger UI 的使用方法
- PROJECT_SUMMARY.md 更新:
* 添加项目概述描述
* 更新 API 文档部分,反映已实现的功能
* 更新构建和部署部分,添加端口配置和进程管理功能
* 详细分类 Make 命令,添加所有新命令说明
* 更新系统接口说明,添加 Swagger UI 访问地址
* 更新下一步建议,使用新的文档生成命令
* 新增"最新优化功能"章节,详细说明端口配置和文档优化
---
PROJECT_SUMMARY.md | 86 +++++++++++++++++++++++++++++++++++++++++-----
README.md | 85 +++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 160 insertions(+), 11 deletions(-)
diff --git a/PROJECT_SUMMARY.md b/PROJECT_SUMMARY.md
index 6631844..3f48390 100644
--- a/PROJECT_SUMMARY.md
+++ b/PROJECT_SUMMARY.md
@@ -1,6 +1,8 @@
# Yinli API 项目总结
-## 🎉
+## 🎉 项目概述
+
+基于 Golang Gin 框架构建的高性能 RESTful API 服务,集成了 JWT 认证、Redis 缓存、频率限制、CORS 等安全特性,支持多环境部署和完整的 API 文档生成。
以下是项目的详细总结:
@@ -45,6 +47,9 @@
- ✅ 支持多环境启动命令(`make dev`、`make stage`、`make prod`)
- ✅ Docker 容器化支持
- ✅ 自动生成 Docker Compose 文件
+- ✅ 端口配置变量化(`SERVER_PORT`、`SWAGGER_PORT`)
+- ✅ 端口占用检查和自动处理
+- ✅ 端口进程管理命令(`kill-port`、`kill-port-force`)
### 8. 测试框架
- ✅ 使用 Testify 测试框架
@@ -53,8 +58,13 @@
- ✅ 接口测试框架(需要数据库连接时可启用)
### 9. API 文档
-- ✅ Swagger 文档集成准备
-- ✅ 支持按环境分离文档生成
+- ✅ Swagger 文档自动生成(`make docs`)
+- ✅ 自动安装 swag 工具(如果未安装)
+- ✅ 自动过滤生成过程中的警告信息
+- ✅ 自动修复生成的 `docs.go` 文件兼容性问题
+- ✅ 支持按环境分离文档生成(dev/stage/prod)
+- ✅ Docker Swagger UI 服务(`make docs-serve`)
+- ✅ 应用内置 Swagger UI(`/swagger/index.html`)
- ✅ 文档保存在 `doc/` 目录
### 10. 详细文档
@@ -91,7 +101,7 @@ make docker-compose-dev
make docker-up-dev
# 查看日志
-make docker-logs
+make docker-logs-dev
# 停止服务
make docker-down-dev
@@ -175,17 +185,51 @@ yinli-api/
## 🛠️ 可用的 Make 命令
+### 开发命令
```bash
make help # 显示所有可用命令
make dev # 启动开发环境
make stage # 启动预发布环境
make prod # 启动生产环境
+```
+
+### 构建命令
+```bash
make build # 构建应用程序
-make test # 运行测试
-make docker-up-dev # 启动 Docker 开发环境
+make build-all # 构建所有平台版本
make clean # 清理构建文件
```
+### 测试命令
+```bash
+make test # 运行测试
+make test-coverage # 运行测试并生成覆盖率报告
+```
+
+### 文档命令
+```bash
+make docs # 生成 API 文档(自动安装 swag)
+make docs-serve # 启动 Swagger UI 服务器(Docker)
+make docs-stop # 停止 Swagger UI 服务器
+```
+
+### Docker 命令
+```bash
+make docker-up-dev # 启动 Docker 开发环境
+make docker-up-stage # 启动 Docker 预发布环境
+make docker-up-prod # 启动 Docker 生产环境
+make docker-down-dev # 停止开发环境容器
+make docker-logs-dev # 查看开发环境日志
+make docker-ps # 查看所有容器状态
+```
+
+### 端口管理命令
+```bash
+make kill-port PORT=1234 # 终止指定端口的进程
+make kill-port-force PORT=1234 # 强制终止指定端口的进程
+make kill-1234 # 终止默认端口 1234 的进程
+```
+
## 📡 API 接口列表
### 认证接口
@@ -204,7 +248,9 @@ make clean # 清理构建文件
### 系统接口
- `GET /health` - 健康检查
-- `GET /swagger/*` - API 文档
+- `GET /swagger/*` - API 文档(Swagger UI)
+ - 访问地址:`http://localhost:$(SERVER_PORT)/swagger/index.html`
+ - 需要先执行 `make docs` 生成文档
## 🔒 安全特性
@@ -258,7 +304,31 @@ make docker-logs-prod
3. **环境变量**: 在生产环境中设置敏感配置的环境变量
4. **SSL 证书**: 在生产环境中配置 HTTPS
5. **监控日志**: 添加应用监控和日志收集
-6. **API 文档**: 运行 `make install-tools` 安装 Swagger 工具并生成文档
+6. **API 文档**: 运行 `make docs` 自动生成 Swagger 文档,使用 `make docs-serve` 启动 Swagger UI 服务器
+
+## 🔧 最新优化功能
+
+### 端口配置管理
+- **SERVER_PORT 变量**:统一管理应用服务器端口(默认 1234)
+ - 自动更新配置文件中的 `server.port`
+ - 自动更新 Docker Compose 端口映射
+ - 支持端口占用检查和自动处理
+
+- **SWAGGER_PORT 变量**:统一管理 Swagger UI 端口(默认 8081)
+ - Docker Swagger UI 容器端口映射
+ - 静态文件服务器端口
+
+### API 文档生成优化
+- **自动安装工具**:`make docs` 自动检查并安装 swag 工具
+- **警告过滤**:自动过滤生成过程中的警告信息
+- **兼容性修复**:自动修复生成的 `docs.go` 文件兼容性问题
+- **Docker Swagger UI**:使用 Docker 运行完整的 Swagger UI 界面
+- **应用内置 UI**:支持通过 `/swagger/index.html` 访问文档
+
+### Docker 命令优化
+- **命令命名统一**:`docker-logs` → `docker-logs-dev`,保持命名一致性
+- **自动重试机制**:Docker 容器停止失败时自动重试
+- **权限错误处理**:自动检测并处理 rootless Docker 权限问题
## 🎯 项目特色
diff --git a/README.md b/README.md
index 5845188..0a65b81 100644
--- a/README.md
+++ b/README.md
@@ -290,10 +290,42 @@ make check # 执行所有检查
### 文档生成
```bash
-make docs # 生成 API 文档
-make docs-serve # 启动文档服务器
+make docs # 生成 API 文档(自动安装 swag 工具)
+make docs-serve # 启动 Swagger UI 文档服务器(使用 Docker)
+make docs-stop # 停止 Swagger UI 文档服务器
```
+**文档生成说明**:
+
+1. **生成 API 文档**:
+ ```bash
+ make docs
+ ```
+ - 自动检查并安装 `swag` 工具(如果未安装)
+ - 自动过滤生成过程中的警告信息
+ - 自动修复生成的 `docs.go` 文件中的兼容性问题
+ - 文档生成到 `doc/dev/` 目录
+
+2. **启动 Swagger UI 服务器**:
+ ```bash
+ make docs-serve
+ ```
+ - 使用 Docker 运行 Swagger UI 容器
+ - 提供完整的 Swagger UI 界面(非简单的文件列表)
+ - 默认端口:`8081`(可通过 `SWAGGER_PORT` 变量修改)
+ - 访问地址:`http://localhost:8081`
+
+3. **停止 Swagger UI 服务器**:
+ ```bash
+ make docs-stop
+ ```
+ - 停止并移除 Swagger UI 容器
+
+4. **应用内置 Swagger UI**:
+ - 启动应用后,访问:`http://localhost:$(SERVER_PORT)/swagger/index.html`
+ - 例如:`http://localhost:1234/swagger/index.html`
+ - 注意:需要先执行 `make docs` 生成文档,并在 `main.go` 中导入 docs 包
+
### Docker 操作
```bash
@@ -413,6 +445,53 @@ make dev
curl http://localhost:1234/health
```
+### SWAGGER_PORT 配置
+
+`SWAGGER_PORT` 是定义在 `Makefile` 中的变量,用于统一管理 Swagger UI 文档服务器的端口配置。
+
+**变量定义位置**:
+```makefile
+# Makefile 第 23 行
+SWAGGER_PORT := 8081
+```
+
+**影响范围**:
+
+1. **Docker Swagger UI 容器端口映射**:
+ - `make docs-serve` 启动 Swagger UI 容器时,使用 `-p $(SWAGGER_PORT):8080` 进行端口映射
+ - 容器内部端口固定为 8080,外部访问端口为 `SWAGGER_PORT` 的值
+
+2. **静态文件服务器端口**:
+ - 当 Docker 不可用时,`make docs-serve` 会使用 Python HTTP 服务器
+ - 服务器监听在 `SWAGGER_PORT` 指定的端口
+
+3. **访问地址**:
+ - Swagger UI 访问地址:`http://localhost:$(SWAGGER_PORT)`
+ - 默认访问地址:`http://localhost:8081`
+
+**修改方法**:
+
+1. **修改 Makefile**:
+ ```makefile
+ # 在 Makefile 第 23 行修改
+ SWAGGER_PORT := 8081 # 改为你想要的端口
+ ```
+
+2. **注意事项**:
+ - 确保修改后的端口未被其他服务占用
+ - 如果修改了端口,访问地址也需要相应更新
+ - 修改后需要重新执行 `make docs-serve` 才能生效
+
+**示例**:
+```bash
+# 将 SWAGGER_PORT 改为 9090
+# 1. 编辑 Makefile,修改 SWAGGER_PORT := 9090
+# 2. 启动 Swagger UI 服务器
+make docs-serve
+# 3. 访问 Swagger UI
+# 浏览器打开: http://localhost:9090
+```
+
## 📡 API 接口
### 认证接口
@@ -443,7 +522,7 @@ curl http://localhost:1234/health
| 方法 | 路径 | 描述 | 认证 |
|------|------|------|------|
| GET | `/health` | 健康检查 | ❌ |
-| GET | `/swagger/*` | API 文档 | ❌ |
+| GET | `/swagger/*` | API 文档(Swagger UI) | ❌ |
## 🧪 接口测试