RomM API终极指南完整接口文档和开发实战【免费下载链接】rommRomM (Rom Manager) is a web based retro roms manager integrated with IGDB.项目地址: https://gitcode.com/gh_mirrors/ro/rommRomMRom Manager是一个基于Web的复古游戏ROM管理器它集成了IGDB游戏数据库为复古游戏爱好者提供了完整的游戏库管理解决方案。通过强大的API接口开发者可以轻松构建自定义客户端、自动化脚本或集成其他游戏管理工具。 RomM API核心功能概览RomM API提供了全面的游戏库管理功能包括游戏ROM管理、平台分类、元数据获取、用户认证等核心功能。API采用RESTful设计支持JSON格式数据交换并提供了完整的认证和授权机制。主要API端点分类游戏ROM管理-/api/roms获取游戏列表、单个游戏详情上传、下载、删除游戏ROM游戏元数据管理平台管理-/api/platforms获取支持的平台列表平台详细信息查询平台游戏统计用户认证-/api/auth用户登录/注销OAuth集成密码重置功能配置管理-/api/configs系统配置获取和更新库路径设置元数据抓取配置任务管理-/api/tasks扫描游戏库任务元数据更新任务任务状态查询RomM游戏库界面展示支持网格视图和平台筛选 API基础使用指南认证机制RomM API支持多种认证方式包括基本认证和OAuth。所有API请求都需要在请求头中包含CSRF令牌# 获取CSRF令牌 curl -X POST /api/token # 使用令牌访问API curl -H x-csrftoken: YOUR_TOKEN /api/roms分页和过滤所有列表接口都支持分页和过滤参数# 获取第一页游戏列表每页20条 GET /api/roms?limit20offset0 # 按平台筛选游戏 GET /api/roms?platform_id1 # 搜索游戏 GET /api/roms?searchsupermario 游戏ROM管理API详解获取游戏列表GET /api/roms接口返回游戏列表支持多种查询参数{ items: [ { id: 1, name: Super Mario Bros, platform_slug: nes, file_size: 40960, file_extension: .nes, has_cover: true, igdb_id: 7346, created_at: 2024-01-15T10:30:00Z, updated_at: 2024-01-15T10:30:00Z } ], total: 150, page: 1, pages: 8 }获取游戏详情GET /api/roms/{rom_id}返回游戏的完整详细信息包括元数据、保存状态和截图游戏详情页面显示完整的游戏信息和元数据上传游戏ROMPOST /api/roms支持大文件分片上传需要指定平台ID和文件名curl -X POST /api/roms \ -H x-upload-platform: 1 \ -H x-upload-filename: super_mario.nes \ -H Content-Type: application/octet-stream \ --data-binary super_mario.nes 元数据集成APIRomM集成了多个游戏元数据源可以通过API获取丰富的游戏信息IGDB元数据集成GET /api/roms/{rom_id}/metadata/igdb从IGDB获取游戏信息{ igdb_id: 7346, name: Super Mario Bros., summary: The classic platformer that started it all..., storyline: Princess Peach has been kidnapped..., rating: 87.5, release_date: 1985-09-13, genres: [Platform, Adventure], themes: [Fantasy, Family], cover_url: https://images.igdb.com/... }其他元数据源RomM还支持以下元数据源MobyGames- 获取游戏评分和描述ScreenScraper- 获取游戏截图和封面RetroAchievements- 获取成就信息HowLongToBeat- 获取游戏时长数据RetroAchievements元数据集成提供游戏成就信息 文件系统管理API游戏文件操作GET /api/roms/{rom_id}/file下载游戏ROM文件DELETE /api/roms/{rom_id}/file删除游戏ROM文件封面图片管理RomM支持多种尺寸的游戏封面# 获取原始封面 GET /api/roms/{rom_id}/cover # 获取缩略图300x300 GET /api/roms/{rom_id}/cover?sizethumb # 获取小图150x150 GET /api/roms/{rom_id}/cover?sizesmall 实时扫描和同步WebSocket APIRomM提供了WebSocket接口用于实时状态更新// 连接到WebSocket const ws new WebSocket(ws://your-romm-instance/ws); // 监听扫描进度 ws.onmessage (event) { const data JSON.parse(event.data); if (data.type scan_progress) { console.log(扫描进度: ${data.progress}%); } };批量操作APIPOST /api/roms/batch支持批量操作{ operation: delete, rom_ids: [1, 2, 3, 4, 5] }️ 安全和权限控制RomM API实现了完整的权限控制系统用户角色和权限管理员- 完整访问所有API编辑者- 可以添加/编辑游戏但不能删除查看者- 只能查看游戏信息API权限范围每个API端点都有特定的权限要求定义在backend/handler/auth/constants.pyclass Scope: ROMS_READ roms:read ROMS_WRITE roms:write ROMS_DELETE roms:delete PLATFORMS_READ platforms:read # ... 更多权限定义 统计和监控API系统统计GET /api/stats返回系统总体统计信息{ total_roms: 1250, total_platforms: 25, total_size_gb: 145.7, recently_added: [ {id: 1245, name: Chrono Trigger, added_at: 2024-01-20}, {id: 1246, name: Final Fantasy VI, added_at: 2024-01-19} ] }RomM首页显示系统统计信息和最近添加的游戏平台统计GET /api/platforms/{platform_id}/stats获取特定平台的统计信息{ platform_name: Nintendo Entertainment System, total_roms: 150, total_size_mb: 120, completion_percentage: 85.5 } 实战开发示例示例1自动添加游戏脚本import requests class RomMClient: def __init__(self, base_url, api_key): self.base_url base_url self.session requests.Session() self.session.headers.update({ x-api-key: api_key, Content-Type: application/json }) def upload_rom(self, platform_id, file_path, metadataNone): 上传游戏ROM文件 with open(file_path, rb) as f: filename os.path.basename(file_path) headers { x-upload-platform: str(platform_id), x-upload-filename: filename } response self.session.post( f{self.base_url}/api/roms, headersheaders, dataf.read() ) if response.status_code 201: rom_id response.json()[id] if metadata: self.update_metadata(rom_id, metadata) return rom_id else: raise Exception(f上传失败: {response.text})示例2批量元数据更新def update_roms_metadata(romm_client, platform_slug): 更新指定平台所有游戏的元数据 # 获取平台所有游戏 roms romm_client.get_roms(platform_slugplatform_slug) for rom in roms: if not rom.get(igdb_id): # 搜索IGDB获取ID igdb_data search_igdb(rom[name]) if igdb_data: romm_client.update_rom_metadata(rom[id], { igdb_id: igdb_data[id], name: igdb_data[name], summary: igdb_data[summary] }) print(f更新游戏: {rom[name]}) 故障排除和最佳实践常见问题解决认证失败- 检查CSRF令牌是否正确设置文件上传失败- 确保文件大小不超过配置限制元数据获取失败- 检查网络连接和API密钥性能优化建议使用分页获取大量数据缓存频繁访问的数据使用WebSocket获取实时更新批量操作减少API调用次数 相关资源后端API源码-backend/endpoints/目录包含所有API端点实现前端API客户端-frontend/src/services/api/包含TypeScript API客户端响应模型-backend/endpoints/responses/定义了所有API响应格式认证中间件-backend/handler/auth/处理认证和授权逻辑 总结RomM API为复古游戏ROM管理提供了完整、强大的接口系统。无论是构建自定义前端界面、开发自动化脚本还是集成到其他游戏管理系统中RomM API都能满足您的需求。通过合理的权限控制、丰富的元数据集成和实时同步功能RomM API是复古游戏库管理的理想选择。通过本文的指南您应该已经掌握了RomM API的核心功能和开发技巧。现在就开始使用RomM API构建您自己的复古游戏管理解决方案吧【免费下载链接】rommRomM (Rom Manager) is a web based retro roms manager integrated with IGDB.项目地址: https://gitcode.com/gh_mirrors/ro/romm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RomM API终极指南:完整接口文档和开发实战
RomM API终极指南完整接口文档和开发实战【免费下载链接】rommRomM (Rom Manager) is a web based retro roms manager integrated with IGDB.项目地址: https://gitcode.com/gh_mirrors/ro/rommRomMRom Manager是一个基于Web的复古游戏ROM管理器它集成了IGDB游戏数据库为复古游戏爱好者提供了完整的游戏库管理解决方案。通过强大的API接口开发者可以轻松构建自定义客户端、自动化脚本或集成其他游戏管理工具。 RomM API核心功能概览RomM API提供了全面的游戏库管理功能包括游戏ROM管理、平台分类、元数据获取、用户认证等核心功能。API采用RESTful设计支持JSON格式数据交换并提供了完整的认证和授权机制。主要API端点分类游戏ROM管理-/api/roms获取游戏列表、单个游戏详情上传、下载、删除游戏ROM游戏元数据管理平台管理-/api/platforms获取支持的平台列表平台详细信息查询平台游戏统计用户认证-/api/auth用户登录/注销OAuth集成密码重置功能配置管理-/api/configs系统配置获取和更新库路径设置元数据抓取配置任务管理-/api/tasks扫描游戏库任务元数据更新任务任务状态查询RomM游戏库界面展示支持网格视图和平台筛选 API基础使用指南认证机制RomM API支持多种认证方式包括基本认证和OAuth。所有API请求都需要在请求头中包含CSRF令牌# 获取CSRF令牌 curl -X POST /api/token # 使用令牌访问API curl -H x-csrftoken: YOUR_TOKEN /api/roms分页和过滤所有列表接口都支持分页和过滤参数# 获取第一页游戏列表每页20条 GET /api/roms?limit20offset0 # 按平台筛选游戏 GET /api/roms?platform_id1 # 搜索游戏 GET /api/roms?searchsupermario 游戏ROM管理API详解获取游戏列表GET /api/roms接口返回游戏列表支持多种查询参数{ items: [ { id: 1, name: Super Mario Bros, platform_slug: nes, file_size: 40960, file_extension: .nes, has_cover: true, igdb_id: 7346, created_at: 2024-01-15T10:30:00Z, updated_at: 2024-01-15T10:30:00Z } ], total: 150, page: 1, pages: 8 }获取游戏详情GET /api/roms/{rom_id}返回游戏的完整详细信息包括元数据、保存状态和截图游戏详情页面显示完整的游戏信息和元数据上传游戏ROMPOST /api/roms支持大文件分片上传需要指定平台ID和文件名curl -X POST /api/roms \ -H x-upload-platform: 1 \ -H x-upload-filename: super_mario.nes \ -H Content-Type: application/octet-stream \ --data-binary super_mario.nes 元数据集成APIRomM集成了多个游戏元数据源可以通过API获取丰富的游戏信息IGDB元数据集成GET /api/roms/{rom_id}/metadata/igdb从IGDB获取游戏信息{ igdb_id: 7346, name: Super Mario Bros., summary: The classic platformer that started it all..., storyline: Princess Peach has been kidnapped..., rating: 87.5, release_date: 1985-09-13, genres: [Platform, Adventure], themes: [Fantasy, Family], cover_url: https://images.igdb.com/... }其他元数据源RomM还支持以下元数据源MobyGames- 获取游戏评分和描述ScreenScraper- 获取游戏截图和封面RetroAchievements- 获取成就信息HowLongToBeat- 获取游戏时长数据RetroAchievements元数据集成提供游戏成就信息 文件系统管理API游戏文件操作GET /api/roms/{rom_id}/file下载游戏ROM文件DELETE /api/roms/{rom_id}/file删除游戏ROM文件封面图片管理RomM支持多种尺寸的游戏封面# 获取原始封面 GET /api/roms/{rom_id}/cover # 获取缩略图300x300 GET /api/roms/{rom_id}/cover?sizethumb # 获取小图150x150 GET /api/roms/{rom_id}/cover?sizesmall 实时扫描和同步WebSocket APIRomM提供了WebSocket接口用于实时状态更新// 连接到WebSocket const ws new WebSocket(ws://your-romm-instance/ws); // 监听扫描进度 ws.onmessage (event) { const data JSON.parse(event.data); if (data.type scan_progress) { console.log(扫描进度: ${data.progress}%); } };批量操作APIPOST /api/roms/batch支持批量操作{ operation: delete, rom_ids: [1, 2, 3, 4, 5] }️ 安全和权限控制RomM API实现了完整的权限控制系统用户角色和权限管理员- 完整访问所有API编辑者- 可以添加/编辑游戏但不能删除查看者- 只能查看游戏信息API权限范围每个API端点都有特定的权限要求定义在backend/handler/auth/constants.pyclass Scope: ROMS_READ roms:read ROMS_WRITE roms:write ROMS_DELETE roms:delete PLATFORMS_READ platforms:read # ... 更多权限定义 统计和监控API系统统计GET /api/stats返回系统总体统计信息{ total_roms: 1250, total_platforms: 25, total_size_gb: 145.7, recently_added: [ {id: 1245, name: Chrono Trigger, added_at: 2024-01-20}, {id: 1246, name: Final Fantasy VI, added_at: 2024-01-19} ] }RomM首页显示系统统计信息和最近添加的游戏平台统计GET /api/platforms/{platform_id}/stats获取特定平台的统计信息{ platform_name: Nintendo Entertainment System, total_roms: 150, total_size_mb: 120, completion_percentage: 85.5 } 实战开发示例示例1自动添加游戏脚本import requests class RomMClient: def __init__(self, base_url, api_key): self.base_url base_url self.session requests.Session() self.session.headers.update({ x-api-key: api_key, Content-Type: application/json }) def upload_rom(self, platform_id, file_path, metadataNone): 上传游戏ROM文件 with open(file_path, rb) as f: filename os.path.basename(file_path) headers { x-upload-platform: str(platform_id), x-upload-filename: filename } response self.session.post( f{self.base_url}/api/roms, headersheaders, dataf.read() ) if response.status_code 201: rom_id response.json()[id] if metadata: self.update_metadata(rom_id, metadata) return rom_id else: raise Exception(f上传失败: {response.text})示例2批量元数据更新def update_roms_metadata(romm_client, platform_slug): 更新指定平台所有游戏的元数据 # 获取平台所有游戏 roms romm_client.get_roms(platform_slugplatform_slug) for rom in roms: if not rom.get(igdb_id): # 搜索IGDB获取ID igdb_data search_igdb(rom[name]) if igdb_data: romm_client.update_rom_metadata(rom[id], { igdb_id: igdb_data[id], name: igdb_data[name], summary: igdb_data[summary] }) print(f更新游戏: {rom[name]}) 故障排除和最佳实践常见问题解决认证失败- 检查CSRF令牌是否正确设置文件上传失败- 确保文件大小不超过配置限制元数据获取失败- 检查网络连接和API密钥性能优化建议使用分页获取大量数据缓存频繁访问的数据使用WebSocket获取实时更新批量操作减少API调用次数 相关资源后端API源码-backend/endpoints/目录包含所有API端点实现前端API客户端-frontend/src/services/api/包含TypeScript API客户端响应模型-backend/endpoints/responses/定义了所有API响应格式认证中间件-backend/handler/auth/处理认证和授权逻辑 总结RomM API为复古游戏ROM管理提供了完整、强大的接口系统。无论是构建自定义前端界面、开发自动化脚本还是集成到其他游戏管理系统中RomM API都能满足您的需求。通过合理的权限控制、丰富的元数据集成和实时同步功能RomM API是复古游戏库管理的理想选择。通过本文的指南您应该已经掌握了RomM API的核心功能和开发技巧。现在就开始使用RomM API构建您自己的复古游戏管理解决方案吧【免费下载链接】rommRomM (Rom Manager) is a web based retro roms manager integrated with IGDB.项目地址: https://gitcode.com/gh_mirrors/ro/romm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考