# -*- coding: utf-8 -*- import sys import requests import json import os sys.stdout.reconfigure(encoding='utf-8') # 配置 TOKEN = "afxp_fa4137GfIzJtlOCeQHjpCXc83SFWmeAOrZnq" PROJECT_ID = "6037107" PARENT_FOLDER_ID = "78015216" # 门店端-新版目录ID BASE_URL = "https://api.apifox.com/api/v1" headers = { "X-Apifox-Api-Version": "2024-03-28", "Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json; charset=utf-8" } folder_name = "供应链采购管理" description = "供应链采购管理相关接口" print("=" * 60) print(f"创建目录: {folder_name}") print("=" * 60) # 通过导入OpenAPI创建目录 openapi_spec = { "openapi": "3.0.0", "info": { "title": "供应链采购管理目录创建", "version": "1.0.0" }, "tags": [ { "name": folder_name, "description": description } ], "paths": { f"/api/__placeholder__/supply-chain": { "get": { "summary": f"[占位] {folder_name} 目录占位接口", "description": "这是一个占位接口,用于创建目录。可以在 Apifox 中手动删除。", "tags": [folder_name], "responses": { "200": { "description": "占位响应" } } } } } } payload = { "input": json.dumps(openapi_spec, ensure_ascii=False), "options": { "targetEndpointFolderId": int(PARENT_FOLDER_ID), # 指定父目录 "endpointOverwriteBehavior": "CREATE_NEW" } } try: response = requests.post( f"{BASE_URL}/projects/{PROJECT_ID}/import-openapi", headers=headers, json=payload, params={"locale": "zh-CN"}, timeout=30 ) print(f"\nHTTP状态码: {response.status_code}") print(f"响应内容: {response.text[:1000]}") if response.status_code == 200: try: result = response.json() except: print("⚠️ 响应不是JSON格式,可能是重定向或HTML") print(" 目录可能已创建,请在Apifox Web UI中查看") sys.exit(0) print(f"响应: {json.dumps(result, ensure_ascii=False, indent=2)[:500]}") if result.get('success'): counters = result.get('data', {}).get('counters', {}) endpoint_folder_created = counters.get('endpointFolderCreated', 0) endpoint_created = counters.get('endpointCreated', 0) if endpoint_folder_created > 0: print(f"\n✅ 目录创建成功!") print(f" 已创建 {endpoint_folder_created} 个目录") print(f" 已创建 {endpoint_created} 个占位接口") print(f"\n💡 提示: 占位接口可以在 Apifox Web UI 中手动删除") elif endpoint_created > 0: print(f"\n⚠️ 目录可能已存在") print(f" 已创建 {endpoint_created} 个占位接口") print(f"\n💡 提示: 请在 Apifox Web UI 中查看目录是否已创建") else: print(f"\n⚠️ 未创建目录或接口") else: print(f"\n❌ 创建失败: {result.get('errorMessage', 'Unknown error')}") else: print(f"\n❌ HTTP {response.status_code}") print(f"响应内容: {response.text[:500]}") except Exception as e: print(f"\n❌ 异常: {str(e)}") import traceback traceback.print_exc() print("\n" + "=" * 60)