File size: 3,003 Bytes
f12ea8b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/env python3
"""
检查 API 文档和规范
"""

import requests
import json

def check_openapi_spec():
    """检查 OpenAPI 规范"""
    try:
        response = requests.get("http://localhost:8000/openapi.json", timeout=10)
        if response.status_code == 200:
            spec = response.json()
            
            print("📋 OpenAPI 规范分析")
            print("=" * 50)
            
            # 查找模型相关的信息
            def find_model_info(obj, path=""):
                models_found = []
                
                if isinstance(obj, dict):
                    for key, value in obj.items():
                        current_path = f"{path}.{key}" if path else key
                        
                        if "model" in key.lower() or "claude" in key.lower() or "anthropic" in key.lower():
                            models_found.append((current_path, value))
                        
                        models_found.extend(find_model_info(value, current_path))
                
                elif isinstance(obj, list):
                    for i, item in enumerate(obj):
                        models_found.extend(find_model_info(item, f"{path}[{i}]"))
                
                return models_found
            
            model_info = find_model_info(spec)
            
            if model_info:
                print("🔍 发现模型相关信息:")
                for path, value in model_info[:10]:  # 只显示前10个
                    print(f"  {path}: {value}")
            else:
                print("❌ 未在 OpenAPI 规范中发现模型信息")
            
            # 检查 schemas
            if "components" in spec and "schemas" in spec["components"]:
                schemas = spec["components"]["schemas"]
                print(f"\n📝 发现 {len(schemas)} 个 schema:")
                for schema_name in schemas.keys():
                    print(f"  • {schema_name}")
            
            # 保存完整规范
            with open("openapi_spec.json", "w", encoding="utf-8") as f:
                json.dump(spec, f, ensure_ascii=False, indent=2)
            print(f"\n📁 完整 OpenAPI 规范已保存到: openapi_spec.json")
            
        else:
            print(f"❌ 获取 OpenAPI 规范失败: {response.status_code}")
    
    except Exception as e:
        print(f"❌ 检查 OpenAPI 规范异常: {e}")

def check_docs_page():
    """检查文档页面"""
    try:
        response = requests.get("http://localhost:8000/docs", timeout=10)
        if response.status_code == 200:
            print("📖 /docs 页面可访问")
            print("建议在浏览器中访问 http://localhost:8000/docs 查看完整文档")
        else:
            print(f"❌ /docs 页面不可访问: {response.status_code}")
    except Exception as e:
        print(f"❌ 检查 /docs 页面异常: {e}")

if __name__ == "__main__":
    check_openapi_spec()
    check_docs_page()