• 数据表操作
    • 创建数据表
    • 获取数据表详情
    • 获取数据表列表
    • 更新数据表
    • 删除数据表

    数据表操作

    创建数据表

    接口

    POST https://cloud.minapp.com/userve/v1/table/

    提交参数

    参数 类型 必填 说明
    name String(32) 数据表名(以字母开头,字母、数字、下划线的组合)
    schema Object 数据表字段的元信息
    row_read_perm String Array 数据表行的读权限
    row_write_perm String Array 数据表行的写权限
    write_perm String Array 数据表的写权限

    参数 row_read_perm 和 row_write_perm 控制数据表数据的读写权限,读权限表示用户是否有权限获取数据,写权限表示用户是否有权限更新数据。

    参数 write_perm 控制数据表的写权限,即表示用户是否有权限创建数据。

    权限参数的说明:

    参数 类型 说明
    user:* String 所有人可写/可读
    user:<:user_id> String 某个用户可写/可读
    gid:<:group_id> String 某个分组下的用户可写/可读

    具体描述与使用场景可参考ACL 访问控制列表。

    参数 schema 用于存储数据表字段的元信息,其结构遵循JSON-Table-Schema的描述。

    例:

    1. {
    2. "fields": [
    3. {
    4. "name": "field_name",
    5. "type": "string",
    6. "description": "description of field_name",
    7. "constraints": {
    8. "required": true # 设置写入/更新必填选项
    9. },
    10. "default": "hello, world", # 设置默认值
    11. "acl": {
    12. "clientVisibile": true, # 设置客户端可见
    13. "clientReadOnly": true, # 设置客户端只读
    14. "creatorVisible": true # 设置创建者可见
    15. }
    16. }
    17. ]
    18. }

    数据表列的元信息:

    属性 类型 必填 说明
    name String(32) 字段名(字母开头,字母、数字、下划线的组合)
    type String 字段类型
    items Object 列表元素类型,array 字段类型必填
    format String geojson 字段类型必填,值默认为 default
    description String 字段的描述,不填自动赋值为字段名称
    constraints Object 字段的约束属性,仅支持 required 属性
    default 跟字段类型一样 字段的默认值
    acl Object 字段权限相关的属性
    coordinate_type String geojson 字段类型必填
    • type 目前支持 string、integer、number、boolean、array、geojson、file、date 等

    • items 目前支持 string、integer、number、boolean 等

    • coordinate_type 目前支持 wgs84(地球坐标)、gcj02(火星坐标)

    若字段是 array 类型,字段元信息为:

    1. {
    2. "name": "array_field",
    3. "type": "array",
    4. "items": {
    5. "type": "string"
    6. }
    7. }

    若字段是 geojson 类型,字段元信息为:

    1. {
    2. "name": "location",
    3. "type": "geojson",
    4. "format": "default",
    5. "coordinate_type": "gcj02"
    6. }

    字段权限相关的属性存储在 acl 中:

    属性 类型 必填 说明
    clientVisibile Boolean 客户端只读的标志位,true 表示字段在客户端只读,不能被写入/更新
    clientReadOnly Boolean 客户端可见的标志位, false 表示字段在客户端不可见
    creatorVisible Boolean 客户端创建者可见的标志位,true 表示字段在客户端只有创建者可见

    代码示例

    1. var axios = require('axios').create({
    2. withCredentials: true
    3. })
    4. axios.post('https://cloud.minapp.com/userve/v1/table/', {
    5. name: 'Table',
    6. schema: {
    7. fields: [
    8. {
    9. name: 'String',
    10. type: 'string'
    11. }
    12. ]
    13. },
    14. row_read_perm: ['user:*'],
    15. row_write_perm: ['user:*'],
    16. write_perm: ['user:*']
    17. }).then(res => {
    18. console.log(res.data)
    19. })

    返回示例

    1. {
    2. "id": 1,
    3. "name": "Table",
    4. "protected_fields": null,
    5. "schema": {
    6. "fields": [
    7. {
    8. "description": "id",
    9. "name": "id",
    10. "type": "id"
    11. },
    12. {
    13. "description": "created_by",
    14. "name": "created_by",
    15. "type": "integer"
    16. },
    17. {
    18. "description": "created_at",
    19. "name": "created_at",
    20. "type": "integer"
    21. },
    22. {
    23. "description": "updated_at",
    24. "name": "updated_at",
    25. "type": "integer"
    26. },
    27. {
    28. "name": "String",
    29. "type": "string",
    30. "description": "string",
    31. }
    32. ]
    33. },
    34. "write_perm": [
    35. "user:*"
    36. ],
    37. "default_row_perm": {
    38. "_read_perm": [
    39. "user:*"
    40. ],
    41. "_write_perm": [
    42. "user:*"
    43. ]
    44. },
    45. "created_at": 1519538564,
    46. "updated_at": 1519640477
    47. }

    info
    字段如 id、created_by、created_at、updated_at 为自动添加的内置字段

    返回参数说明

    参数 类型 说明
    id Integer 数据表 ID
    name String 数据表名
    protected_fields String Array 内置表的保护字段,若数据表不是内置表,该字段为 null
    schema Object 数据表字段的元信息
    write_perm String Array 数据表写权限
    default_row_perm Object 数据表行数据权限
    created_at Integer 数据表创建时间
    updated_at Integer 数据表更新时间

    状态码说明

    201: 修改成功

    400: 表名已存在;不合法的数据

    获取数据表详情

    接口

    GET https://cloud.minapp.com/userve/v1/table/:table_id/

    代码示例

    1. var axios = require('axios').create({
    2. withCredentials: true
    3. })
    4. axios.get('https://cloud.minapp.com/userve/v1/table/1/').then(res => {
    5. console.log(res.data)
    6. })

    返回示例

    1. {
    2. "id": 1,
    3. "name": "Table",
    4. "protected_fields": null,
    5. "schema": {
    6. "fields": [
    7. {
    8. "name": "String",
    9. "type": "string"
    10. }
    11. ]
    12. },
    13. "write_perm": [
    14. "user:*"
    15. ],
    16. "default_row_perm": {
    17. "_read_perm": [
    18. "user:*"
    19. ],
    20. "_write_perm": [
    21. "user:*"
    22. ]
    23. },
    24. "created_at": 1519538564,
    25. "updated_at": 1519640477
    26. }

    状态码说明

    200: 成功

    获取数据表列表

    接口

    GET https://cloud.minapp.com/userve/v1/table/

    提交参数

    • name 支持对数据表名的等值查询

    https://cloud.minapp.com/userve/v1/table/?name=Table

    代码示例

    1. var axios = require('axios').create({
    2. withCredentials: true
    3. })
    4. axios.get('https://cloud.minapp.com/userve/v1/table/', {
    5. params: {
    6. name: 'test',
    7. }
    8. }).then(res => {
    9. console.log(res.data)
    10. })

    返回示例

    1. {
    2. "meta": {
    3. "limit": 20,
    4. "next": null,
    5. "offset": 0,
    6. "previous": null,
    7. "total_count": 1
    8. },
    9. "objects": [
    10. {
    11. "id": 1,
    12. "name": "Table",
    13. "protected_fields": null,
    14. "schema": {
    15. "fields": [
    16. {
    17. "name": "String",
    18. "type": "string"
    19. }
    20. ]
    21. },
    22. "write_perm": [
    23. "user:*"
    24. ],
    25. "default_row_perm": {
    26. "_read_perm": [
    27. "user:*"
    28. ],
    29. "_write_perm": [
    30. "user:*"
    31. ]
    32. },
    33. "created_at": 1519538564,
    34. "updated_at": 1519640477
    35. }
    36. ]
    37. }

    状态码说明

    200: 成功

    更新数据表

    接口

    PUT https://cloud.minapp.com/userve/v1/table/:table_id/

    info
    数据表更新接口支持一次更新一个或多个字段

    代码示例

    1. var axios = require('axios').create({
    2. withCredentials: true
    3. })
    4. axios.put('https://cloud.minapp.com/userve/v1/table/1/', {
    5. name: 'table'
    6. }).then(res => {
    7. console.log(res.data)
    8. })

    返回示例

    1. {
    2. "id": 1,
    3. "name": "table",
    4. "protected_fields": null,
    5. "schema": {
    6. "fields": [
    7. {
    8. "name": "String",
    9. "type": "string"
    10. }
    11. ]
    12. },
    13. "write_perm": [
    14. "user:*"
    15. ],
    16. "default_row_perm": {
    17. "_read_perm": [
    18. "user:*"
    19. ],
    20. "_write_perm": [
    21. "user:*"
    22. ]
    23. },
    24. "created_at": 1519538564,
    25. "updated_at": 1519640477
    26. }

    状态码说明

    200: 修改成功

    400: 表名已存在;不合法的数据

    删除数据表

    接口

    DELETE https://cloud.minapp.com/userve/v1/table/:table_id/

    代码示例

    1. var axios = require('axios').create({
    2. withCredentials: true
    3. })
    4. axios.delete('https://cloud.minapp.com/userve/v1/table/1/').then(res => {
    5. console.log(res.data)
    6. })

    状态码说明

    204: 删除成功