提供数据存储接口进行调用存储数据。
说明
- 访问数据表需要指定表所属 APP 名
- APP 之间的数据表是相互隔离的,即相同 APP 内不能创建同名数据表,不同 APP 内则没有数据表名限制
- 所有数据表都会自动创建自增主键,字段名为id
- 数据存储暂时无法指定权限(数据表的可见范围)
认证
目前支持以下两种存储方式:
-
Token 认证:参考访问控制,发送HTTP 请求时在Header中添加"Authorization: 43d2df67-7b6f-4833-bdcc-a1bc296f3ab3"。
-
Session 认证:仅在插件中可以使用,是一个动态的 Session,安全性比较高,Session值对应的是自定义算子的
session_key
字段,或者自定义api的metadata()
中的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
文档反馈
(如有产品使用问题,请提交工单)