Skip to content

手动部署插件仓库

以下仅手动部署用户(api用户)查看

Section titled “以下仅手动部署用户(api用户)查看”

网页用户可访问5.zmascloud.xyz直接查看 麦麦备用插件仓库 API 文档

概述

麦麦备用插件仓库提供简单易用的 API 接口,允许开发者获取插件信息和控制数据同步。所有 API 端点均返回 JSON 格式数据。

基础信息

• Base URL: http://[server_host]:[server_port]

• 默认地址: http://localhost:66

认证

当前所有 API 均为公开接口,无需认证。

API端点

  1. 获取所有插件数据

请求:

GET /api/plugins

参数:

成功响应:

{ “status”: “success”, “timestamp”: “2024-04-10T14:30:45.123Z”, “cache_updated”: “2024-04-10T14:25:30.456Z”, “data”: [ { “name”: “插件名称”, “repo”: “仓库地址”, “author”: “作者主页”, “repo_text”: “仓库显示文本”, “author_text”: “作者显示文本” } ] }

字段说明:

• timestamp: API响应时间(ISO 8601格式)

• cache_updated: 数据最后更新时间(ISO 8601格式)

• data: 插件数组

示例:

curl -X GET “http://localhost:66/api/plugins

  1. 手动刷新数据缓存

请求:

GET /api/refresh

参数:

成功响应:

{ “status”: “success”, “message”: “已刷新 15 个插件数据”, “timestamp”: “2024-04-10T14:32:10.789Z” }

错误响应:

{ “status”: “error”, “message”: “数据源不可用,请稍后重试”, “timestamp”: “2024-04-10T14:33:05.234Z” }

示例:

curl -X GET “http://localhost:66/api/refresh

状态码

状态码 说明 200 成功 500 服务器内部错误

前端JavaScript调用示例

获取插件数据

async function fetchPlugins() { try { const response = await fetch(‘/api/plugins’); if (!response.ok) { throw new Error(HTTP error! status: ${response.status}); } return await response.json(); } catch (error) { console.error(‘获取插件数据失败:’, error); return null; } }

// 使用示例 const pluginsData = await fetchPlugins(); if (pluginsData && pluginsData.status === ‘success’) { console.log(‘插件数据:’, pluginsData.data); }

刷新数据

async function refreshData() { try { const response = await fetch(‘/api/refresh’); if (!response.ok) { throw new Error(HTTP error! status: ${response.status}); } return await response.json(); } catch (error) { console.error(‘刷新数据失败:’, error); return null; } }

// 使用示例 document.getElementById(‘refreshButton’).addEventListener(‘click’, async () => { const result = await refreshData(); if (result.status === ‘success’) { alert(result.message); // 重新加载插件列表 loadPluginData(); } });

配置说明

API行为可通过配置文件config.toml调整:

[server] host = “127.0.0.1” port = 66

[github] data_sources = [ “https://raw.githubusercontent.com/ZmasCloud/maiplugin/master/about.md”, “https://raw.bgithub.xyz/ZmasCloud/maiplugin/master/about.md”, “https://raw.gitmirror.com/ZmasCloud/maiplugin/master/about.md” ]

[settings] items_per_page = 5 cache_time_minutes = 5 # 数据缓存时间(分钟)

常见问题

  1. API返回空数据

可能原因:

• 数据缓存尚未加载完成

• GitHub数据源访问受限

• 网络连接问题

解决方案:

• 等待几秒后重试

• 尝试调用/api/refresh强制刷新数据

• 检查配置文件中的data_sources配置

  1. API响应缓慢

建议:

• 调整cache_time_minutes增加缓存时间

• 使用本地测试模式(设置cache_time_minutes = 1440一天)

  1. 如何过滤数据?

目前API不提供参数过滤功能,客户端应在获取数据后自行处理:

// 按名称过滤插件 const searchQuery = “搜索词”; const filteredPlugins = pluginsData.data.filter(plugin => plugin.name.includes(searchQuery) );

使用限制

• 默认缓存5分钟

• 数据来源依赖GitHub原始文件

• 当多个用户同时使用时,刷新操作可能需要排队