update swagger

This commit is contained in:
2026-03-26 15:42:37 +08:00
parent e0af97ac7f
commit d8db141423
8 changed files with 1274 additions and 190 deletions

100
test_connection.py Normal file
View File

@@ -0,0 +1,100 @@
"""
测试数据库和缓存连接以及 FastAPI 应用加载
使用方法python test_connection.py
"""
import sys
print("=" * 60)
print("🔍 Hot News Main - 系统连接测试")
print("=" * 60)
# 测试 1: FastAPI 应用加载
print("\n📋 测试 1: FastAPI 应用加载...")
try:
from app.main import app
print("✅ FastAPI 应用加载成功!")
print(f" - 应用标题:{app.title}")
print(f" - Swagger UI: /docs")
print(f" - ReDoc: /redoc")
except Exception as e:
print(f"❌ FastAPI 应用加载失败:{e}")
import traceback
traceback.print_exc()
sys.exit(1)
# 测试 2: Redis 连接
print("\n📋 测试 2: Redis 连接...")
try:
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.ping()
print("✅ Redis 连接成功!")
print(" - Host: localhost")
print(" - Port: 6379")
except Exception as e:
print(f"❌ Redis 连接失败:{e}")
print("\n💡 解决方案:")
print(" 方式 1 (Docker):")
print(" docker run -d -p 6379:6379 --name redis redis:latest")
print("\n 方式 2 (WSL):")
print(" wsl sudo service redis-server start")
print("\n 方式 3 (Windows 原生):")
print(" 下载并运行 redis-server.exe")
# 测试 3: MySQL 连接
print("\n📋 测试 3: MySQL 连接...")
try:
# 尝试从配置中读取
from app.core.config import get_config
config = get_config()
import pymysql
conn = pymysql.connect(
host=config.database.host,
user=config.database.user,
password=config.database.password,
database=config.database.db,
charset=config.database.charset
)
print("✅ MySQL 连接成功!")
print(f" - Host: {config.database.host}")
print(f" - Database: {config.database.db}")
print(f" - User: {config.database.user}")
conn.close()
except Exception as e:
print(f"❌ MySQL 连接失败:{e}")
print("\n💡 解决方案:")
print(" 1. 检查 MySQL 服务是否启动")
print(" 2. 检查 config/config.yaml 中的数据库配置")
print(" 3. 创建数据库CREATE DATABASE hot_news CHARACTER SET utf8mb4;")
# 测试 4: OpenAPI Schema 生成
print("\n📋 测试 4: OpenAPI Schema 生成...")
try:
schema = app.openapi()
paths = list(schema['paths'].keys())
print(f"✅ OpenAPI Schema 生成成功!")
print(f" - API 路径数量:{len(paths)}")
print(f" - 部分路径示例:")
for path in paths[:5]:
print(f"{path}")
if len(paths) > 5:
print(f" ... 还有 {len(paths) - 5} 条路径")
except Exception as e:
print(f"❌ OpenAPI Schema 生成失败:{e}")
import traceback
traceback.print_exc()
print("\n" + "=" * 60)
print("📊 测试结果汇总")
print("=" * 60)
print("""
✅ FastAPI 应用已修复,可以正常加载
⚠️ Redis 和 MySQL 需要手动启动(如果未运行)
🚀 下一步操作:
1. 如果 Redis/MySQL 未启动,请参考 TROUBLESHOOTING.md 启动服务
2. 启动应用python run.py
3. 访问 Swagger 文档http://localhost:8000/docs
""")