数据检索

1.  接口描述

电子实验记录本的数据检索API接口,使用JSON格式进行数据交换。

在调用API时,在Header里要加入如下的信息

Authorization: Bearer {AccessToken}

AccessToken 的获取方式,见“认证接口”

2.  接口调用

请求URL: https://eln.iphy.ac.cn:61262/eln_api/search
https://eln.iphy.ac.cn:61263/matelab/index.php?do=eln_api&action=search(已废弃)
https://eln.iphy.ac.cn:61263/open_eln/eln_api_search.php(已废弃)

请求方式: POST

参数

eln 选填,数组。要查询的记录本名称合集。所有指定的记录本必须是存放在同一服务器上的;如果此参数为空,则搜索范围为自己的所有记录本。记录本名称有两种表示方法,1. 字符串,自己的记录本名称。2. {“title": "记录本名称“, "user": "xxx@abc.com"},指定他人的记录本;
date_start 选填,日期格式字符串。搜索晚于此记录创建的日期的记录(包含当天);
date_end 选填,日期格式字符串。搜索早于此记录创建的日期的记录(包含当天);
keyword 选填,数组。在包含关键词中的记录中查找;
requests 必填。数组。查询命令。数据条数最少1个,最多24个。
  • uid: 必填。自定义的唯一ID,不能有重复值。用于标记导出的数据;
  • path: 必填。数组,最多4项;
    路径中的第1项:字符串,字符串代表模块名,数字代表第几个模块;数字编号从 0 开始计数。
    路径中的第2项:数字或字符串,字符串代表表单中的行名或表格中的列名,数字在表单中代表第几行、表格中代表第几列、图片中代表第几个;数字编号从 0 开始计数。
    路径中的第3项:数字或字符串,字符串代表表单或表格中文件格式的详情,数字在表格中代表第几行;数字编号从 0 开始计数。
    路径中的第4项:字符串,一般用来查询表格中文件格式的详情;

示例

{
    "eln": [
               "记录本名称1",
               "记录本名称2",
               {"title":"记录本名称2", "user":"xxx@abc.com"},
               {"title":"记录本名称3", "user":"xxxx@abc.com"}
    ],
    "date_start": "2000-1-1",
    "date_end": "2000-12-31",
    "keyword":  ["关键词1", "关键词2"],
    "requests": [
        {
            "uid": "表单中的Text字段",
            "path": ["表单模块名","Text"]
        },
        {
            "uid": "图片集中的第一张",
            "path": ["图片集模块名",0]
        },
        {
            "uid": "富文本",
            "path": ["富文本模块名"]
        },
        {
            "uid": "表格中某列的所有数据",
            "path": ["表格模块名","列名"]
        },
        {
            "uid": "表格某列中的第六行数据",
            "path": ["表格模块名","列名", 5]
        },
        {
            "uid": "表格某列中的第六行文件的url",
            "path": ["表格模块名","列名", 5,"url"]
        }
    ]
}

3.  返回数据

返回数据会把符合条件、并且存在可检索数据的项目按数据库中的条目返回。返回值第一项固定为id,表示源数据的数据库ID,第二项固定为记录的UID。其他项的命名是根据请求的uid命名。数据结构类似表格。

code 错误代码;
  • 0: 成功;
  • 1: 认证 Token 信息无效;
  • 2: 数据格式错误;
  • 3: 服务器原因错误;
  • 'refresh': 认证 Token 过期,需使用刷新Token重新获取。
msg 错误描述;
data 数据。

示例

{
    "code": 0,
    "data": [
        {
            "id": 1234,
            "表单中的Text字段": "Text",
            "图片集中的第一张": {
                "url": "https://in.iphy.ac.cn/a.png",
                "filename": "tu.png",
                "size": 1024
            },
            "表格中某列的所有数据": ["行1","行2"],
            "表格某列中的第六行数据": "Text",
            "表格某列中的第六行文件的url": "https://in.iphy.ac.cn/a.png"
        },
        {
            "id": 2234,
            "表单中的Text字段": "Text",
            "图片集中的第一张": {
                "url": "https://in.iphy.ac.cn/a.png",
                "filename": "tu.png",
                "size": 1024
        },
        {
            "id": 3235,
            "表格中某列的所有数据": ["行1", "行2"],
            "表格某列中的第六行数据": "Text",
            "表格某列中的第六行文件的url": "https://in.iphy.ac.cn/a.png"
        },
        {
            "id": 3234,
            "表单中的Text字段": "Text",
            "图片集中的第一张": {
                "url": "https://in.iphy.ac.cn/a.png",
                "filename": "tu.png",
                "size": 1024
        },
        {
            "id": 3235,
            "表格中某列的所有数据": ["行1","行2"],
            "表格某列中的第六行数据": "Text",
            "表格某列中的第六行文件的url": "https://in.iphy.ac.cn/a.png"
        }
    ]
}