hookehuyr

feat: 添加 Apifox Skill 连接测试脚本

新增测试脚本以验证 Apifox Skill 的配置和连接功能。脚本会测试 Token 和项目 ID 的有效性,获取项目信息并列出接口列表,提供清晰的错误诊断信息以帮助用户排查配置问题。
#!/usr/bin/env node
/**
* 测试 Apifox Skill 连接
*/
const path = require('path');
const ApifoxClient = require('/Users/huyirui/.claude/skills/apifox/apifox-client.js');
// 测试配置
const testConfig = {
VITE_APIFOX_TOKEN: 'APS-jkT1Q61MCKgzgvfCL2euIR2TcgKsnSyc',
VITE_APIFOX_PROJECT_ID: '6084040',
VITE_APIFOX_CACHE_TIME: 3600
};
console.log('🧪 Apifox Skill 连接测试');
console.log('='.repeat(50));
console.log('');
// 显示配置信息
console.log('📝 测试配置:');
console.log(` Token: ${testConfig.VITE_APIFOX_TOKEN.substring(0, 20)}...`);
console.log(` 项目 ID: ${testConfig.VITE_APIFOX_PROJECT_ID}`);
console.log('');
async function testConnection() {
const client = new ApifoxClient(testConfig);
try {
// 测试 1: 获取项目信息
console.log('📊 测试 1/3: 获取项目信息...');
const project = await client.getProjectInfo();
console.log('✅ 项目信息获取成功');
console.log(` 项目名称: ${project.name || '未设置'}`);
console.log(` 项目 ID: ${project.id}`);
console.log(` 描述: ${project.description || '无'}`);
console.log('');
// 测试 2: 获取接口列表
console.log('📋 测试 2/3: 获取接口列表...');
const apis = await client.listAllApis();
console.log(`✅ 接口列表获取成功,共 ${apis.length} 个接口`);
console.log('');
// 测试 3: 显示前 5 个接口
console.log('🔍 测试 3/3: 显示前 5 个接口...');
const sampleApis = apis.slice(0, 5);
sampleApis.forEach((api, index) => {
const method = (api.attributes?.method || 'GET').toUpperCase();
const path = api.attributes?.path || '/';
const name = api.attributes?.name || '未命名';
console.log(` ${index + 1}. ${method} ${path}`);
console.log(` ${name}`);
});
if (apis.length > 5) {
console.log(` ... 还有 ${apis.length - 5} 个接口`);
}
console.log('');
console.log('='.repeat(50));
console.log('✅ 所有测试通过!');
console.log('');
console.log('🎉 Token 和 Project ID 验证成功!');
console.log('💡 你现在可以使用 Apifox Skill 了');
} catch (error) {
console.log('');
console.log('❌ 测试失败');
console.log('');
if (error.message.includes('401')) {
console.log('错误原因: HTTP 401 - Token 无效或已过期');
console.log('');
console.log('解决方案:');
console.log(' 1. 检查 Token 是否正确');
console.log(' 2. 在 Apifox 中重新生成 Token');
console.log(' 3. 更新 .env.apifox 文件');
} else if (error.message.includes('403') || error.message.includes('404')) {
console.log('错误原因: HTTP 403/404 - 项目不存在或无权限');
console.log('');
console.log('解决方案:');
console.log(' 1. 检查项目 ID 是否正确');
console.log(' 2. 确认账号有该项目的访问权限');
console.log(' 3. 在 Apifox 中检查项目设置');
} else {
console.log('错误原因:', error.message);
console.log('');
console.log('详细错误:');
console.error(error);
}
process.exit(1);
}
}
// 运行测试
testConnection().catch(err => {
console.error('');
console.error('❌ 测试失败:', err.message);
console.error('');
process.exit(1);
});