机器数据分析平台

  • 机器数据分析平台 > 应用开发者文档 > APP开发手册 > APP开发说明 > 自定义后端功能 >数据存储接口

    数据存储接口

    最近更新时间:2020-12-22 17:56:06

    提供数据存储接口进行调用存储数据。

    说明

    • 访问数据表需要指定表所属 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"。

    获取 app 数据表列表

    • 请求
    GET /storage/collections/<app_name>/config
    
    • 返回值
    {
    	"total": <total>,
    	"collections": [
    		{
    			"app": "<app_name>",          // 例如 "test_app"
    			"scope": "<scope>",           // 例如 "GLOBAL"
    			"app_table": "<table_name>",  // 例如 "test_table"
    			"table_schema": "<schema>"    // 例如 "`title` VARCHAR(100) NOT NULL, `author` VARCHAR(40) NOT NULL
    		},
    		...
    	]
    }
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    创建 app 数据表

    • 请求
    POST /storage/collections/<app_name>/config
    
    • 参数
    {
    	"name": "<table_name>",              // 例如 test
    	"schema": "<schema>"                 // 例如 "`title` VARCHAR(100) NOT NULL, `author` VARCHAR(40) NOT NULL
    }
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    插入数据

    • 请求
    POST /storage/collections/<app_name>/data/{table}
    
    • 参数
    {
    	"fields": "<fields>", // 例如 "title, author"
    	"values": "<value>"   // 例如 "\"test_title\",\"test\""
    }
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    批量插入数据

    • 请求
    POST /storage/collections/<app_name>/data/<table_name>/batch_save
    
    • 参数
    {
    	"fields": "<fields>",                   // 例如 "title, author"
    	"values": ["<value1>","<value2>",...]   // 例如 ["\"test_title\",\"test\"", "\"test2_titlle\",\"test2\""]
    }
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    获取app数据表所有数据

    • 请求
    GET /storage/collections/<app_name>/data/<tabe_name>
    
    • 返回值
    {
    	"total": <total>,
    	"data": [
    		{
    			"<key1>": "<value1>",
    			"<key2>": "<value2>",
    			...
    		},{
    			"<key1>": "<value1>",
    			"<key2>": "<value2>",
    			...
    		},
    		...
    	]
    }
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    根据key排序获取app数据表10-19条数据

    • 请求
    GET /storage/collections/<app_name>/data/<tabe_name>?sort=<key1>&order=<desc/asc>&pageNo=2&pageSize=10
    
    • 返回值
    {
    	"total": <total>,   // GET 中例如 ?pageNo=2&pageSize=1&sort=author&order=asc,totoal值为1
    	"data": [          // 例如 "data":[{"author":"test","id":1,"title":"test_title"}]
    		{
    			"<key1>": "<value1>",
    			"<key2>": "<value2>",
    			...
    		},
        ....
    	]
    }
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    根据query获取app数据表数据

    • 请求
    GET /storage/collections/<app_name>/data/<tabe_name>?query="<query>"   // 例如 ?query="title=\"test_title\""
    
    • 返回值
    {
    	"total": <total>,  // 例如 totoal值为1
    	"data": [          // 例如 "data":[{"submission_date":null,"author":"lihong","id":1,"title":"lihongtitle"}]
    		{
    			"<key1>": "<value1>",
    			"<key2>": "<value2>",
    			...
    		},
    		....
    	]
    }
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    获取匹配id的记录

    • 请求
    GET /storage/collections/<app_name>/data/<tabe_name>/<id>     // 例如 id 为 2
    
    • 返回值
    {
    	"<key1>": "<value1>",   // 例如 {"author":"test2","id":2,"title":"test2_titlle"}
    	"<key2>": "<value2>",
    	...
    }
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    更新匹配id的记录

    • 请求
    PUT /storage/collections/<app_name>/data/<tabe_name>/<id>
    
    • 参数
    {
    	"value": "<value1>"   // 例如 {"value":"author=\"lihongauthor\""}
    }
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    更新匹配query的记录

    • 请求
    PUT /storage/collections/<app_name>/data/<tabe_name>
    
    • 参数
    {
    	"query": "<query>",   // 例如 {"query":"title=\"test_title\""}
    	"value": "<value1>"   // 例如 {"value":"author=\"test_author\""}
    }
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    删除匹配id的记录

    • 请求
    DELETE /storage/collections/<app_name>/data/<tabe_name>/<id>
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    清空app数据表所有记录

    • 请求
    DELETE /storage/collections/<app_name>/data/<tabe_name>
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    删除app数据表符合query的记录

    • 请求
    DELETE /storage/collections/<app_name>/data/<tabe_name>?query="<query>"
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    

    删除app数据表

    • 请求
    DELETE /storage/collections/<app_name>/<tabe_name>
    
    • 返回值
    HTTP/1.1 200 OK
    RequestId: RequestId
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close