update swagger
This commit is contained in:
100
test_connection.py
Normal file
100
test_connection.py
Normal 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
|
||||
""")
|
||||
Reference in New Issue
Block a user