机器数据分析平台

  • 机器数据分析平台 > API 文档 > 接口文档 >数据存储

    数据存储

    最近更新时间: 2021-08-06 10:00:40

    1. 接口清单

    数据存储接口为用户提供创建数据表、插入数据、查询数据、删除数据、修改数据等数据管理操作的接口。

    数据表相关:

    1. 创建数据表: POST /api/v1/storage/v2/collections/<appName>/config
    2. 更新数据表: PUT /api/v1/storage/v2/collections/<appName>/config
    3. 删除数据表: DELETE /api/v1/storage/v2/collections/<appName>/<tableName>
    4. 获取数据表列表:GET /api/v1/storage/v2/collections/<appName>/config

    数据相关:

    1. 插入数据: POST /api/v1/storage/v2/collections/<appName>/data/<tableName>
    2. 批量插入数据: POST /api/v1/storage/v2/collections/<appName>/data/<tableName>/batch_save
    3. 根据query更新数据: PUT /api/v1/storage/v2/collections/<appName>/data/<tableName>?query=<Query>
    4. 根据id更新数据: PUT /api/v1/storage/v2/collections/<appName>/data/<tableName>/<id>
    5. 根据query删除数据: DELETE /api/v1/storage/v2/collections/<appName>/data/<tableName>?query=<Query>
    6. 根据id删除数据: DELETE /api/v1/storage/v2/collections/<appName>/data/<tableName>/<id>
    7. 根据query获取数据:GET /api/v1/storage/v2/collections/<appName>/data/<tableName>?query=<Query>
    8. 根据id获取数据: GET /api/v1/storage/v2/collections/<appName>/data/<tableName>/<id>

    注意:搜索接口的请求格式是json格式,所以请求Header中必须添加 ‘Content-Type: application/json’

    说明

    • 访问数据表需要指定表所属 APP 名
    • APP 之间的数据表是相互隔离的,即相同 APP 内不能创建同名数据表,不同 APP 内则没有数据表名限制
    • 所有数据表都会自动创建自增主键,字段名为id
    • 数据存储暂时无法指定权限(数据表的可见范围)

    认证

    目前支持以下两种存储方式:

    • Token 认证:参考访问控制,发送HTTP 请求时在Header中添加"Authorization: 43d2df67-7b6f-4833-bdcc-a1bc296f3ab3"。

    • Session 认证:仅在插件中可以使用,是一个动态的 Session,安全性比较高,Session值对应的是自定义算子session_key 字段,或者自定义apimetadata()中的 session_key 字段,发送HTTP 请求时在header中添加"X-App-Session-Key: 43d2df67-7b6f-4833-bdcc-a1bc296f3ab3"。

    2. 接口描述

    2.1 创建数据表

    请求路径:/api/v1/storage/v2/collections/<appName>/config

    请求方法:POST

    请求体示例:

    {
        "tableName": "<table_name>",    // 需要创建的数据表名,例如 test
        "fields": [{"name":"<field_name>", "type":"<field_type>","length":"<field_length>"}],  // 数据表中字段定义,支持的字段类型:varchar、int、bigint、timestamp、float、double、text、longtext、mediumtext。length属性仅在类型为varchar时生效。
        "indices": [["<field>"]]   // 数据表索引,例如 [["title"],["id","name"]],表示对title字段创建索引,对id和name字段创建联合索引
    }
    

    请求体字段解释:

    字段名 是否必填 字段解释 默认值
    tableName 数据表名
    fields 数据表字段定义
    indices 数据表中索引定义

    响应体示例:

    {}
    

    响应为200的时候即为创建数据表成功

    2.2 更新数据表

    请求路径:/api/v1/storage/v2/collections/<appName>/config

    请求方法:PUT

    请求体示例:

    {
        "tableName": "<table_name>",    // 需要创建的数据表名,例如 test
        "field": {"name":"<field>", "type":"<type>","length":"<length>"},  // 需要修改的字段定义
        "operation": "<operationType>"   // 更新操作,支持:add(增加字段)、delete(删除字段)、modify(修改字段类型)
    }
    

    请求体字段解释:

    字段名 是否必填 字段解释 默认值
    tableName 数据表名
    field 修改后的字段定义
    operation 操作类型

    响应体示例:

    {}
    

    2.3 删除数据表

    请求路径:/api/v1/storage/v2/collections/<appName>/<tableName>

    请求方法:DELETE

    响应体示例:

    {}
    

    响应为200的时候即为删除数据表成功

    2.4 获取数据表列表

    获取当前app下的数据表以及全局范围的数据表

    请求路径:/api/v1/storage/v2/collections/<appName>/config

    请求方法:GET

    响应体示例:

    {
        "total": <total>,    // 数据表总数
        "collections": [     // 数据表集合
            {
                "app": "<app_name>",                  // app名称
                "scope": "<scope>",                   // 数据表范围
                "app_table": "<table_name>",          // 数据表名称
                "table_fields": [{"name":"<field_name>", "type":"<field_type>","length":"<field_length>"}],                                                 
                                                      // 数据表字段定义
                "table_indices": [["<field_name>"]]   // 数据表索引定义
            },
            ...
        ]
    }
    

    返回体字段解释:

    字段名 是否必填 字段解释
    total 返回的数据表总数
    collections 数据表集合
    app app名称
    scope 数据表范围
    app_table 数据表名称
    table_fields 数据表字段定义
    table_indices 数据表索引定义

    2.5 插入数据

    请求路径:/api/v1/storage/v2/collections/<appName>/data/{table}

    请求方法:POST

    请求体示例:

    {
        "<field>": "<value>" // 例如 {"title":"author"}
    }
    

    请求体字段解释:

    字段名 是否必填 字段解释 默认值
    field 字段名
    value 字段值

    响应体示例:

    {}
    

    2.6 批量插入数据

    请求路径:/api/v1/storage/v2/collections/<appName>/data/<tableName>/batch_save

    请求方法:POST

    请求体示例:

    [{
    	"<field>": "<value>"                   // 例如 [{"title":"author"}]
    }]
    

    响应体示例:

    {}
    

    2.7 根据query更新数据

    请求路径:/api/v1/storage/v2/collections/<appName>/data/<tableName>?query=<Query>

    请求方法:PUT

    请求参数示例:query="id=1"

    请求体示例:

    {
        "<field>": "<value>" // 例如 {"title":"author"}
    }
    

    响应体示例:

    {}
    

    2.8 根据id更新数据

    请求路径:/api/v1/storage/v2/collections/<appName>/data/<tableName>/<id>

    请求方法:PUT

    请求体示例:

    {
        "<field>": "<value>" // 例如 {"title":"author"}
    }
    

    响应体示例:

    {}
    

    2.9 根据query删除数据

    请求路径:/api/v1/storage/v2/collections/<appName>/data/<tableName>?query=<Query>

    请求方法:DELETE

    响应体示例:

    {}
    

    响应为200的时候即为数据已经被删除

    2.10 根据id删除数据

    请求路径:/api/v1/storage/v2/collections/<appName>/data/<tableName>/<id>

    请求方法:DELETE

    响应体示例:

    {}
    

    2.11 根据query获取数据

    请求路径:/api/v1/storage/v2/collections/<appName>/data/<tableName>?query=<Query>&column=<Column>&sort=<SortColumn>&order=<asc|desc>&pageNo=<PageNo>&pageSize=<PageSize>

    请求方法:GET

    请求参数字段解释:

    字段名 是否必填 字段解释 默认值
    query 查询语句,默认返回全部数据
    column 返回字段,默认返回所有字段 *
    sort 排序字段,默认不排序
    order 排序顺序
    pageNo 分页信息,第几页,默认不分页 1
    pageSize 分页信息,每页数据量 10

    注:query不为空时,sort、order、pageNo、pageSize参数不生效;

    响应体示例:

    {
    	"total": <total>,  // 数据总数
    	"data": [          // 数据集合
    		{
    			"<key1>": "<value1>",
    			"<key2>": "<value2>",
    			...
    		},
    		....
    	]
    }
    

    2.12 根据id获取数据

    请求路径:/api/v1/storage/v2/collections/<appName>/data/<tableName>/<id>

    请求方法:GET

    响应体示例:

    {
    	"<key1>": "<value1>",   // 例如 {"author":"test2","id":2,"title":"test2_titlle"}
    	"<key2>": "<value2>",
    	...
    }
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close