Keymap Editor API参考手册:所有接口详解与使用示例
2026/5/16 21:41:12 网站建设 项目流程

Keymap Editor API参考手册:所有接口详解与使用示例

【免费下载链接】keymap-editorA web based graphical editor of ZMK keymaps.项目地址: https://gitcode.com/gh_mirrors/ke/keymap-editor

Keymap Editor是一个基于Web的ZMK键盘映射图形编辑器,提供了丰富的API接口来管理键盘行为、键码、布局和键盘映射,以及与GitHub集成的功能。本手册将详细介绍所有可用API接口的使用方法和示例,帮助开发者快速集成和扩展Keymap Editor的功能。

一、键盘相关API

1.1 获取行为列表

  • 接口地址/behaviors
  • 请求方法:GET
  • 描述:获取ZMK支持的所有行为列表
  • 响应示例
{ "behaviors": [ {"id": "key_press", "description": "基本按键按下行为"}, {"id": "mod_tap", "description": "按住为修饰键,轻触为普通键"} ] }
  • 实现文件:api/routes/keyboards.js

1.2 获取键码列表

  • 接口地址/keycodes
  • 请求方法:GET
  • 描述:获取ZMK支持的所有键码定义
  • 响应示例
{ "keycodes": [ {"code": "KC_A", "label": "A", "category": "字母"}, {"code": "KC_1", "label": "1", "category": "数字"} ] }
  • 实现文件:api/routes/keyboards.js

1.3 获取布局信息

  • 接口地址/layout
  • 请求方法:GET
  • 描述:获取当前键盘布局信息
  • 响应示例
{ "layout": "LAYOUT", "rows": 5, "cols": 15, "keys": [ {"row": 0, "col": 0, "label": "Esc"}, {"row": 0, "col": 1, "label": "1"} ] }
  • 实现文件:api/routes/keyboards.js

图1:Keymap Editor中的键盘布局示例,展示了如何通过API获取布局信息

1.4 获取当前键盘映射

  • 接口地址/keymap
  • 请求方法:GET
  • 描述:获取当前的键盘映射配置
  • 响应示例
{ "layers": [ { "name": "BASE", "keys": ["KC_ESC", "KC_1", "KC_2", "KC_3"] }, { "name": "FN", "keys": ["KC_F1", "KC_F2", "KC_F3", "KC_F4"] } ] }
  • 实现文件:api/routes/keyboards.js

1.5 更新键盘映射

  • 接口地址/keymap
  • 请求方法:POST
  • 描述:更新键盘映射配置
  • 请求体示例
{ "layers": [ { "name": "BASE", "keys": ["KC_ESC", "KC_Q", "KC_W", "KC_E"] } ] }
  • 响应:200 OK(成功)或500 Error(失败)
  • 实现文件:api/routes/keyboards.js

图2:Keymap Editor的键盘映射编辑界面,可通过POST /keymap接口更新配置

二、GitHub集成API

2.1 GitHub授权

  • 接口地址/github/authorize
  • 请求方法:GET
  • 描述:引导用户进行GitHub授权,获取访问令牌
  • 响应:重定向到GitHub授权页面
  • 实现文件:api/routes/github.js

2.2 获取安装信息

  • 接口地址/github/installation
  • 请求方法:GET
  • 描述:获取用户的GitHub应用安装信息
  • 请求头Authorization: Bearer {token}
  • 响应示例
{ "installations": [ { "id": 12345, "repositories": ["my-keyboard-config"] } ] }
  • 实现文件:api/routes/github.js

2.3 获取仓库分支

  • 接口地址/github/installation/:installationId/:repository/branches
  • 请求方法:GET
  • 描述:获取指定仓库的分支列表
  • 请求头Authorization: Bearer {token}
  • 响应示例
{ "branches": [ {"name": "main", "sha": "a1b2c3d4e5f6"}, {"name": "dev", "sha": "f6e5d4c3b2a1"} ] }
  • 实现文件:api/routes/github.js

2.4 获取键盘配置文件

  • 接口地址/github/keyboard-files/:installationId/:repository
  • 请求方法:GET
  • 描述:获取指定仓库的键盘配置文件
  • 请求头Authorization: Bearer {token}
  • 请求参数branch(可选,默认主分支)
  • 响应示例
{ "info": { "name": "My Keyboard", "vendor": "Custom" }, "keymap": { "layers": [ {"name": "BASE", "keys": ["KC_ESC", "KC_Q", "KC_W"]} ] } }
  • 实现文件:api/routes/github.js

图3:Keymap Editor的GitHub集成界面,展示了从GitHub仓库加载键盘配置文件的功能

2.5 更新键盘配置文件

  • 接口地址/github/keyboard-files/:installationId/:repository/:branch
  • 请求方法:POST
  • 描述:更新GitHub仓库中的键盘配置文件
  • 请求头Authorization: Bearer {token}
  • 请求体示例
{ "layout": "LAYOUT", "keymap": { "layers": [ {"name": "BASE", "keys": ["KC_ESC", "KC_Q", "KC_W"]} ] } }
  • 响应:200 OK(成功)或500 Error(失败)
  • 实现文件:api/routes/github.js

三、错误处理

所有API接口在发生错误时都会返回适当的HTTP状态码:

  • 401 Unauthorized:未授权或令牌无效
  • 400 Bad Request:请求参数错误或验证失败
  • 500 Internal Server Error:服务器内部错误

错误响应示例:

{ "name": "KeymapValidationError", "errors": [ "Layer 'BASE' is missing required key at position (0,0)" ] }

四、使用示例

4.1 获取键码列表并显示

// 前端JavaScript示例 fetch('/behaviors') .then(response => response.json()) .then(data => { console.log('Available behaviors:', data.behaviors); // 在UI中显示行为列表 });

4.2 保存键盘映射到GitHub

// 前端JavaScript示例 const saveToGitHub = async (keymap) => { try { const response = await fetch('/github/keyboard-files/12345/my-keyboard-config/main', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${userToken}` }, body: JSON.stringify({ layout: 'LAYOUT', keymap: keymap }) }); if (response.ok) { alert('Keymap saved to GitHub successfully!'); } else { alert('Failed to save keymap'); } } catch (error) { console.error('Error saving keymap:', error); } };

图4:使用API创建的组合键编辑界面,展示了复杂键盘映射的配置方式

五、开发与扩展

Keymap Editor的API服务实现位于api/services/目录下,主要包括:

  • api/services/zmk/:ZMK键盘映射相关功能
  • api/services/github/:GitHub集成相关功能

开发者可以通过扩展这些服务来添加新的API接口或增强现有功能。

要开始本地开发,请克隆仓库:

git clone https://gitcode.com/gh_mirrors/ke/keymap-editor

然后按照running-locally.md中的说明进行环境配置和启动服务。

通过本API参考手册,您可以轻松地与Keymap Editor进行集成,构建自定义的键盘映射管理工具或扩展现有功能。如有任何问题,请参考项目源代码或提交issue获取帮助。

【免费下载链接】keymap-editorA web based graphical editor of ZMK keymaps.项目地址: https://gitcode.com/gh_mirrors/ke/keymap-editor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询