78 lines
2.4 KiB
Python
78 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""查找门店端-新版下的认证目录"""
|
|
import requests
|
|
import json
|
|
|
|
TOKEN = "afxp_fa4137GfIzJtlOCeQHjpCXc83SFWmeAOrZnq"
|
|
PROJECT_ID = "6037107"
|
|
PARENT_FOLDER_ID = 78015216 # 门店端-新版
|
|
|
|
headers = {
|
|
"X-Apifox-Api-Version": "2024-03-28",
|
|
"Authorization": f"Bearer {TOKEN}"
|
|
}
|
|
|
|
print("查询目录结构...")
|
|
|
|
# 获取完整目录树
|
|
response = requests.get(
|
|
f"https://api.apifox.com/api/v1/projects/{PROJECT_ID}/api-tree-list",
|
|
headers=headers
|
|
)
|
|
|
|
def find_folder_in_tree(node, parent_id):
|
|
"""在目录树中查找指定父目录下的所有子目录"""
|
|
folders = []
|
|
|
|
if isinstance(node, list):
|
|
for item in node:
|
|
folders.extend(find_folder_in_tree(item, parent_id))
|
|
return folders
|
|
|
|
if isinstance(node, dict):
|
|
if node.get('type') == 'apiDetailFolder':
|
|
folder = node.get('folder', {})
|
|
folder_parent_id = folder.get('parentId')
|
|
|
|
# 如果是目标父目录的子目录
|
|
if folder_parent_id == parent_id:
|
|
folder_info = {
|
|
'id': folder.get('id'),
|
|
'name': node.get('name'),
|
|
'parentId': folder_parent_id
|
|
}
|
|
folders.append(folder_info)
|
|
print(f" 找到子目录: {folder_info['name']} (ID: {folder_info['id']})")
|
|
|
|
# 也显示父目录本身
|
|
if folder.get('id') == parent_id:
|
|
print(f"\n父目录: {node.get('name')} (ID: {folder.get('id')})")
|
|
print(f"子目录:")
|
|
|
|
# 递归处理子节点
|
|
for child in node.get('children', []):
|
|
folders.extend(find_folder_in_tree(child, parent_id))
|
|
|
|
return folders
|
|
|
|
if response.status_code == 200:
|
|
data = response.json().get('data', [])
|
|
folders = find_folder_in_tree(data, PARENT_FOLDER_ID)
|
|
|
|
print(f"\n共找到 {len(folders)} 个子目录")
|
|
|
|
# 查找"认证"目录
|
|
auth_folder = next((f for f in folders if f['name'] == '认证'), None)
|
|
|
|
if auth_folder:
|
|
print(f"\n✓ '认证' 目录已存在: ID = {auth_folder['id']}")
|
|
|
|
# 保存ID供后续使用
|
|
with open('auth_folder_id.txt', 'w') as f:
|
|
f.write(str(auth_folder['id']))
|
|
else:
|
|
print("\n✗ '认证' 目录不存在,需要创建")
|
|
else:
|
|
print(f"错误: {response.status_code}")
|
|
|