@weilei_kyle/public-apis-mcp
Version:
MCP server for accessing public APIs
78 lines • 3.1 kB
JavaScript
/**
* 格式化服务类
* 负责格式化 API 数据输出
*/
export class FormatterService {
/**
* 格式化 API 条目
*/
formatAPIEntry(api) {
return `📌 ${api.API}\n` +
`📝 描述: ${api.Description}\n` +
`🔑 认证: ${api.Auth}\n` +
`🔒 HTTPS: ${api.HTTPS ? '是' : '否'}\n` +
`🌐 CORS: ${api.Cors}\n` +
`🔗 链接: ${api.Link}\n` +
`📂 分类: ${api.Category}`;
}
/**
* 格式化 API 详细信息
*/
formatAPIDetails(api) {
const authHeader = this.getAuthHeader(api.Auth);
let details = `# ${api.API}\n\n` +
`## 基本信息\n\n` +
`- **描述**: ${api.Description}\n` +
`- **分类**: ${api.Category}\n` +
`- **链接**: ${api.Link}\n\n` +
`## 技术细节\n\n` +
`- **认证方式**: ${api.Auth}\n` +
`- **HTTPS支持**: ${api.HTTPS ? '是' : '否'}\n` +
`- **CORS状态**: ${api.Cors}\n\n`;
if (api.Auth !== 'No') {
details += `## 认证设置\n\n` +
`${authHeader.setup}\n\n` +
`## 请求示例\n\n` +
`\`\`\`bash\n${authHeader.curl}\n\`\`\`\n\n`;
}
return details;
}
/**
* 获取认证头信息
*/
getAuthHeader(authType) {
switch (authType) {
case 'apiKey':
return {
setup: '需要API密钥。通常需要注册账号并在开发者控制台获取API密钥。',
header: 'X-API-Key: YOUR_API_KEY',
curl: 'curl -H "X-API-Key: YOUR_API_KEY" https://api-endpoint.com/resource'
};
case 'OAuth':
return {
setup: '需要OAuth认证。请参考API文档完成OAuth流程获取访问令牌。',
header: 'Authorization: Bearer YOUR_ACCESS_TOKEN',
curl: 'curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api-endpoint.com/resource'
};
case 'X-Mashape-Key':
return {
setup: '需要Mashape/RapidAPI密钥。请在RapidAPI平台注册并订阅此API。',
header: 'X-Mashape-Key: YOUR_MASHAPE_KEY',
curl: 'curl -H "X-Mashape-Key: YOUR_MASHAPE_KEY" https://api-endpoint.com/resource'
};
case 'User-Agent':
return {
setup: '需要在请求中设置User-Agent头。通常用于标识您的应用。',
header: 'User-Agent: YOUR_APP_NAME',
curl: 'curl -H "User-Agent: YOUR_APP_NAME" https://api-endpoint.com/resource'
};
default:
return {
setup: '无需认证。可以直接访问API。',
header: '',
curl: 'curl https://api-endpoint.com/resource'
};
}
}
}
//# sourceMappingURL=formatter-service.js.map