插件的编写

可以使用你任何熟悉的语言来编写。Python、nodejs、PHP、Java都可以。插件的调用使用JSON格式来交换输入输出数据。

插件的输入处理

插件使用http协议进行数据交换。数据的输入的内容在请求的body中,格式为json。内容为记录本数据的元格式。不同的类型发送的内容会不同,如表格插件,仅会发送调用模块的表格数据。文件类型的插件,会发送文件的下载链接,使用此链接可以从记录本服务器上把此文件下载下来处理。

旧版本数据交换格式(即将废弃,尽快修改为新版。2026.04.09以前版本插件的默认数据格式)

数据的输入的内容在请求的body中,格式为json。

Header中附加了一些额外信息,用于数据处理后调用API时使用:

  • uid: 当前数据所属记录的uid;
  • eln: 当前记录所在记录本的名称。
  • userid: 调用插件用户的身份ID。
  • token: 新生成的token,属于调用插件的用户。便于插件利用此token处理此用户的数据。有效期1小时。

新版本数据交换格式

数据的输入的内容在请求的body中,格式为json,用于数据处理后调用API时使用。

{
    "uid": "实验记录UID",
    "eln": "记录本名称",
    "eln_owner_email": "email@domain.com",
    "userid": 9999,
    "token": "调用插件的用户访问系统 token",
    "data": {},
    "more": {},
    "files_selected": [
        {"uid":"uid1", "hash":"文件hash值", "size":1111, "filename":"filename.ext"},
        {"uid":"uid2", "hash":"文件hash值", "size":1111, "filename":"filename.ext"}
    ]
}
  • uid: 当前数据所属记录的uid;
  • eln: 当前记录所在记录本的名称;
  • eln_owner_email: 记录本所有者的Email;
  • userid: 调用插件用户的身份ID;
  • token: 新生成的token,属于调用插件的用户。便于插件利用此token处理此用户的数据。有效期1小时;
  • data: 数据;
  • more: 运行插件窗口用户输入的自定义附加信息;
  • files_selected: 文件集插件特有,当前选择的文件列表。

插件处理完数据,数据的返回记录本的方式

使用更新或数据导入 API把数据插入记录本。

插件返回处理结果的格式

code 错误代码,0 为处理成功,非0表示出错调用不成功;
msg 错误的描述信息;

返回错误示例

{
    "code": 2,
    "msg": "Error message"
}