电子实验记录本的数据更新API接口,使用JSON格式进行数据交换。
注意事项:
此接口支持协同编辑。当其他人正在编辑同一条记录时:
接口命令的执行顺序是 del » delModule » addModule » add » modify。
在调用API时,在Header里要加入如下的信息:
Authorization: Bearer {AccessToken}
AccessToken 的获取方式,见“认证接口”
请求URL: https://eln.iphy.ac.cn:61262/eln_api/update
https://eln.iphy.ac.cn:61263/matelab/index.php?do=eln_api&action=update(已废弃)
| eln | 必填。字符串。记录本名称。 |
| user | 选填。字符串。如果是自己的记录本,可不填写;他人的合作编辑记录本,需要填写记录本所有者的Email |
| uid | 必填。字符串。记录的唯一ID; |
| del | 选填。数组。删除模块中的数据命令组合。del 命令只能删除表单、表格和文件集模块中的数据。具体格式见下面的“del 命令”表格; |
| delModule | 选填。数组。删除模块命令组合,具体格式见下面的“delModule 命令”表格; |
| addModule | 选填。数组。新增模块命令组合,具体格式见下面的“addModule 命令”表格; |
| add | 选填。数组。新增数据命令组合,具体格式见下面的 “add 命令” 表格; |
| modify | 选填。数组。更新命令组合,具体格式见下面的 “modify 命令” 表格; |
| quote | 选填。数组。用于引用其他记录的数据。请确保被引用的数据是存在的,否则引用不会被替换;
|
| path | 必填。数组。要删除的值所在的路径。具体定义见检索API说明。与检索API的不同是,此接口 path 支持负数,表示从后往前计数,例如,-1表示最后一个,-2为倒数第二个。另外一点不同是,对于表格模块,path 1 为整数时,删除的是行,字符串则为删除名为此字符串的列。 |
| name | 必填。数组。要删除的模块的名称 |
| data | 必填。更新的值。根据要更新的目标的格式,值的格式有不同的要求;
|
| path | 必填。数组。要更新的值所在的路径。具体定义见检索API说明。与检索API的不同是,此接口 path 支持负数,表示从后往前计数,例如,-1表示最后一个,-2为倒数第二个。 |
| name | 必填。字符串。如果与现有模块冲突,则不会报错、也不会重复添加; |
| type | 必填。字符串。新增模块的类型。可选值为:“form”,“table”,“files”,“richtext”, “echarts”; |
| data | 选填。字符串。仅对 type 为 “richtext”和“echarts”类型的模块生效,用于富文本模块的初始值。也可不设置,这样初始值为空。 |
| module | 必填。字符串。指定数据增加到的模块名称(只允许指定表单、表格或文件集模块)。此模块名可以为现有的模块,也可是同一请求的 addModule 命令新增的模块; |
| type | 表单模块中新增项目或表格中增加列时必填,其他情况不必填写。字符串。可选 “text”,“number”,“file”,“date”,“time”,“richtext”,“bool”; |
| name | 更新表单模块时必填,表格模块添加列时必填,文件集不必填写。字符串。新插入的表单项目或表格列的名字。 |
| row | 表格模块新行时必填,其他情况不必填写。整数 0 或 -1。0 表示新插入行位于表格第一行,-1表示插入到表格最后。 |
| path |
path 参数仅用于指定文件集模块中文件的存储路径,是一个可选参数。path 以数组形式表示文件夹层级,数组的第一个元素代表一级文件夹,第二个元素代表二级文件夹,以此类推。如果不提供 path 参数,文件默认存储在根目录下。 文件夹命名需遵循以下规范:
注意: 上传文件时,如果目标文件夹已存在同名文件,新文件会覆盖原有文件 |
| data |
除了表格插入新行或列之外必填。要插入的数据。根据目标的格式,值的格式有不同的要求; 插入表单文件项目时:
插入表单项目、文件集中的图片时:
|
示例
{
"eln": "记录本名称",
"user": "test@iphy.ac.cn",
"uid": "VUCBG5CLJQR4417DTC8FGS2KDP",
"del": [
{
"path": ["Table 删除表的一列", "列的名称"],
},
{
"path": ["Table 删除表的一行", -1],
},
{
"path": ["Form", "text"],
},
{
"path": ["Images", 2],
}
],
"modify": [
{
"path": ["Table", "column", 1],
"data": "#quote{n1}"
},
{
"path": ["Images", 1],
"data": {
"file": "#base64{filename.ext,base64code}",
"text": "图片描述"
}
},
{
"path": ["Form", "text"],
"data": "test"
},
{
"path": ["Form", "file"],
"data": "#base64{filename.ext, base64code}"
}
],
"delModule": [
{
"name": "模块名1"
},
{
"name": "模块名2",
}
],
"addModule": [
{
"name": "模块名1",
"type": "form"
},
{
"name": "模块名2",
"type": "table"
},
{
"name": "富文本模块",
"type": "richtext",
"data": "<p>内容</p>",
},
{
"name": "Echarts 图表模块",
"type": "echarts",
"style": "polar",
"data": {
"series: {
"data": [150, 230, 224, 218, 135, 147, 260]
}
}
}
],
"add": [
//文件集模块中新增文件。使用path指定文件所在文件夹。如果不指定path,则放在根目录中。
{
"module": "files module name",
"path": ["folderLevel1","folderLevel2","folderLevel3"],
"data": {"file":"#file{code}","text":"说明"}
},
{
"module": "form module name",
"type": "text",
"name": "item name",
"data": "文本内容,在名为 form modeule name 的表单中插入一项名为 item name 的文本项"
},
{
"module": "form module name",
"type": "file",
"name": "item name", //由于 data 为数组,会新增一个名为 name 的表单文件项,data 中的数据作为此表单项的多个文件
"data": ["#file{name}", "#base64{file.ext,base64code}"]
},
{
"module": "form module name",
"type": "file",
"name": "item name", //由于 data 不是数组,会按name 查找现有的表单项,并在其后增加一行 data 中的数据
"data": "#base64{file.ext, base64code}"
},
//在表格最后增加一个新行
{
"module": "table module name",
"row": -1,
},
//在表格中新增一列
{
"module": "table module name",
"type": "text",
"name": "列名"
},
{
"module": "images module name",
"data": {"file": "#base64{file.ext,base64code}", "text": "图片描述文本"}
}
],
"quote": [
{
"name": "n1",
"eln": "记录本名称",
"uid": "VUCBG5CLJQR4417DTC8FGS2KDP",
"path": ["表格模板名称", "列名", 1]
},
{
"name": "n2",
"eln": "记录本名称",
"uid": "DTC8FGS2KDPVUCBG5CLJQR4417",
"path": ["表单模板名称", "文本框"]
}
]
}
| code | 错误代码;
|
| msg | 错误描述。 |
| errs | 数据格式错误详细信息列表 |
返回错误示例
{
"code": 4,
"msg": "多处错误,详见 errs",
"errs": ["value 应为数字(modify:0)"]
}
返回成功示例
{
"code": 0,
"msg": "数据更新成功"
}