整体说明

应用 API 可以使用组织的密钥或者应用级别密钥。

所有接口路径前缀都是 /openapi/company/{组织短名字}/app/{应用短名字}/,需要将路径中的短名字换成实际的值,比如 /openapi/company/50b55/app/6a814/

应用整体接口

获取应用下的所有资源

获取应用下的所有资源,用于外部系统控制爱速搭的权限分配。

地址:GET /openapi/company/{组织短名字}/app/{应用短名字}/resources

返回示例:

  1. {
  2. "status": 0,
  3. "msg": "",
  4. "data": {
  5. "page": {
  6. "name": "页面",
  7. "items": [
  8. {
  9. "id": "k1Jw8ME8Gq",
  10. "name": "页面名"
  11. }
  12. ]
  13. },
  14. "dataModel": {
  15. "name": "数据模型",
  16. "items": [
  17. {
  18. "id": "M9QEWvywp8",
  19. "name": "数据模型名"
  20. }
  21. ]
  22. },
  23. "dataSource": {
  24. "name": "数据源",
  25. "items": [
  26. {
  27. "id": "k1Jw8ME8Gq",
  28. "name": "数据源名"
  29. }
  30. ]
  31. },
  32. "component": {
  33. "name": "自定义组件",
  34. "items": [
  35. {
  36. "id": "LM6wPMEJdb",
  37. "name": "自定义组件名"
  38. }
  39. ]
  40. },
  41. "APICenter": {
  42. "name": "API",
  43. "items": [
  44. {
  45. "id": "pezEbloLAB",
  46. "name": "api名"
  47. }
  48. ]
  49. },
  50. "APICenterGroup": {
  51. "name": "API 分组",
  52. "items": [
  53. {
  54. "id": "grOwVRwNXG",
  55. "name": "分组名"
  56. }
  57. ]
  58. },
  59. "role": {
  60. "name": "角色",
  61. "items": [
  62. {
  63. "id": "pezEbloLAB",
  64. "name": "应用管理员"
  65. }
  66. ]
  67. }
  68. }
  69. }

角色相关接口

获取应用下的角色列表

地址:GET /openapi/company/{组织短名字}/app/{应用短名字}/role

返回示例:

  1. {
  2. "status": 0,
  3. "msg": "",
  4. "data": {
  5. "items": [
  6. {
  7. "name": "应用管理员", // 角色名称,角色名称在一个应用内不可重名
  8. "id": "pezEbloLAB", // 角色唯一 id
  9. "description": "系统自动创建,应用级别角色,只在应用「nw」中可见。", // 描述新
  10. "scope": "app", // 这是应用级别
  11. "isBultin": true, // 是否是默认创建的
  12. "editable": true, // 是否可编辑
  13. "deleteable": true // 是否可删除
  14. }
  15. ]
  16. }
  17. }

创建应用内角色

地址:Post /openapi/company/{组织短名字}/app/{应用短名字}/role

提交内容:{"name": "角色名"}

删除角色

地址:Delete /openapi/company/{组织短名字}/app/{应用短名字}/role/{角色 id}

需要将角色 id 放到 url 中

获取角色中的用户列表

地址:Get /openapi/company/{组织短名字}/app/{应用短名字}/role/{角色 id}/member

返回示例:

  1. {
  2. "status": 0,
  3. "msg": "",
  4. "data": {
  5. // 角色下包含的用户类别
  6. "users": [
  7. {
  8. "nickName": "xxx", // 用户昵称
  9. "email": "xxx@yyy.com", // 用户邮箱
  10. "roleId": "l2pEKAo1Ry",
  11. "id": "XdkEyJZMRp", // 用户 id
  12. "removable": true
  13. }
  14. ],
  15. // 角色下包含的部门列表
  16. "departments": [
  17. {
  18. "roleId": "l2pEKAo1Ry",
  19. "id": "4MDE4xELmX", // 部门 id
  20. "name": "部门名"
  21. }
  22. ],
  23. // 角色下包含的角色列表
  24. "roles": [
  25. {
  26. "roleId": "l2pEKAo1Ry",
  27. "id": "3Y4wzNwQ7P",
  28. "name": "子角色名"
  29. }
  30. ]
  31. }
  32. }

往角色中添加用户

地址:Post /openapi/company/{组织短名字}/app/{应用短名字}/role/{角色 id}/member/user

提交内容:{"email": "xxx@yyy.com"}

往角色中添加角色

地址:Post /openapi/company/{组织短名字}/app/{应用短名字}/role/{角色 id}/member/role

提交内容:{"role": " 角色 ID"}

权限相关接口

获取应用下有哪些 ACL 配置项

用于告知第三方爱速搭中有哪些可以配置的权限,比如页面可以配置「可见」、「可写」、「可删」这三项。

地址:Get /openapi/company/{组织短名字}/app/{应用短名字}/acl/options

返回示例:

  1. {
  2. "status": 0,
  3. "msg": "",
  4. "data": [
  5. {
  6. "name": "page",
  7. "options": [
  8. {
  9. "name": "read",
  10. "label": "可见"
  11. },
  12. {
  13. "name": "write",
  14. "label": "可写"
  15. },
  16. {
  17. "name": "delete",
  18. "label": "可删"
  19. }
  20. ]
  21. },
  22. {
  23. "name": "dataModel",
  24. "options": [
  25. {
  26. "name": "read",
  27. "label": "可见"
  28. },
  29. {
  30. "name": "write",
  31. "label": "可写"
  32. },
  33. {
  34. "name": "delete",
  35. "label": "可删"
  36. }
  37. ]
  38. },
  39. {
  40. "name": "dataSource",
  41. "options": [
  42. {
  43. "name": "read",
  44. "label": "可见"
  45. },
  46. {
  47. "name": "write",
  48. "label": "可写"
  49. },
  50. {
  51. "name": "delete",
  52. "label": "可删"
  53. }
  54. ]
  55. },
  56. {
  57. "name": "component",
  58. "options": [
  59. {
  60. "name": "read",
  61. "label": "可见"
  62. },
  63. {
  64. "name": "write",
  65. "label": "可写"
  66. },
  67. {
  68. "name": "delete",
  69. "label": "可删"
  70. }
  71. ]
  72. },
  73. {
  74. "name": "APICenter",
  75. "options": [
  76. {
  77. "name": "read",
  78. "label": "可见"
  79. },
  80. {
  81. "name": "write",
  82. "label": "可写"
  83. },
  84. {
  85. "name": "delete",
  86. "label": "可删"
  87. },
  88. {
  89. "name": "call",
  90. "label": "调用"
  91. }
  92. ]
  93. },
  94. {
  95. "name": "APICenterGroup",
  96. "options": [
  97. {
  98. "name": "read",
  99. "label": "可见"
  100. },
  101. {
  102. "name": "write",
  103. "label": "可写"
  104. },
  105. {
  106. "name": "delete",
  107. "label": "可删"
  108. }
  109. ]
  110. },
  111. {
  112. "name": "role",
  113. "options": [
  114. {
  115. "name": "write",
  116. "label": "可写"
  117. },
  118. {
  119. "name": "delete",
  120. "label": "可删"
  121. }
  122. ]
  123. }
  124. ]
  125. }

设置某个角色所拥有的资源权限

地址:Post /openapi/company/{组织短名字}/app/{应用短名字}/role/{角色 id}/acl/role

提交内容示例,提交内容是数组,可以同时设置多个资源的权限:

  1. [
  2. {
  3. "type": "APICenter", // 修改 api 中心的权限
  4. "id": "LM6wPMEJdb", // 对应的 api id
  5. "acl": {"read": true, "write": false, "call": true, "delete": false} // 权限详情,具体某个资源有哪些请参考前面接口返回的内容
  6. },
  7. {
  8. "type": "page", // 修改某个页面的权限
  9. "id": "dl6EgeojP1", // 对应的页面 id
  10. "acl": "*" // 除了前面说到的方式,还可以使用 * 来方便设置这个资源的所有权限
  11. }
  12. ]

获取某个应用可配置的权限点

地址: Get /openapi/company/{组织短名字}/app/{应用短名字}/acl

返回参数格式如下:

  1. {
  2. "status": 0,
  3. "msg": "",
  4. "data": {
  5. "app": {
  6. "key": "877f21d1cc5a",
  7. "name": "XXX应用",
  8. "subResources": [
  9. {
  10. "label": "应用访问",
  11. "value": "read"
  12. },
  13. {
  14. "label": "应用管理",
  15. "value": "edit"
  16. },
  17. {
  18. "label": "数据管理",
  19. "value": "dataManage"
  20. }
  21. ]
  22. },
  23. "page": {
  24. "name": "页面",
  25. "items": [
  26. {
  27. "id": "k1Jw8ME8Gq",
  28. "name": "页面名",
  29. "subResources": [
  30. {
  31. "label": "可打印",
  32. "value": "print"
  33. },
  34. {
  35. "label": "可导出",
  36. "value": "export"
  37. },
  38. {
  39. "label": "xxx接口可调用",
  40. "value": "api.muEb9u9DdpbaGiFMhWqdjm.call"
  41. }
  42. ],
  43. "children": [
  44. // 页面本身是树形结构的,所以用 tree 的格式返回
  45. ]
  46. }
  47. ]
  48. },
  49. "dataModel": {
  50. "name": "数据模型",
  51. "items": [
  52. {
  53. "id": "M9QEWvywp8",
  54. "name": "数据模型名"
  55. }
  56. ]
  57. },
  58. "dataSource": {
  59. "name": "数据源",
  60. "items": [
  61. {
  62. "id": "k1Jw8ME8Gq",
  63. "name": "数据源名"
  64. }
  65. ]
  66. },
  67. "component": {
  68. "name": "自定义组件",
  69. "items": [
  70. {
  71. "id": "LM6wPMEJdb",
  72. "name": "自定义组件名"
  73. }
  74. ]
  75. },
  76. "APICenter": {
  77. "name": "API",
  78. "items": [
  79. {
  80. "id": "pezEbloLAB",
  81. "name": "api名"
  82. }
  83. ]
  84. },
  85. "APICenterGroup": {
  86. "name": "API 分组",
  87. "items": [
  88. {
  89. "id": "grOwVRwNXG",
  90. "name": "分组名"
  91. }
  92. ]
  93. },
  94. "role": {
  95. "name": "角色",
  96. "items": [
  97. {
  98. "id": "pezEbloLAB",
  99. "name": "应用管理员"
  100. }
  101. ]
  102. }
  103. }
  104. }

获取某个应用运行态权限值

地址: Get /openapi/company/{组织短名字}/app/{应用短名字}/acl/runtime

返回参数格式如下:

  1. {
  2. "status": 0,
  3. "data": {
  4. "readAcl": ["role:pezEbAOwLA", "role:yMJwpLmwpx"],
  5. "editAcl": ["role:lKVZOXnoBd", "role:7dAE5Kro59"],
  6. "dataManageAcl": ["role:lKVZOXnoBd", "role:7dAE5Kro59"],
  7. "resourceAcl": {
  8. "pages": [
  9. {
  10. "id": "8Yrw1RREK9",
  11. "acl": {
  12. "read": ["role:pezEbAOwLA"],
  13. "owner": {
  14. "write": true,
  15. "delete": true
  16. },
  17. "3mrZq9ZjNR": {
  18. "write": true,
  19. "delete": true
  20. },
  21. "role:pezEbAOwLA": {
  22. "read": true
  23. }
  24. },
  25. "title": "首页",
  26. "children": [
  27. {
  28. "id": "3nywlG0ogX",
  29. "acl": {
  30. "read": ["role:pezEbAOwLA"],
  31. "owner": {
  32. "write": true,
  33. "delete": true
  34. },
  35. "3mrZq9ZjNR": {
  36. "write": true,
  37. "delete": true
  38. },
  39. "role:pezEbAOwLA": {
  40. "read": true
  41. }
  42. },
  43. "title": "A",
  44. "children": []
  45. }
  46. ]
  47. }
  48. ]
  49. }
  50. }
  51. }

获取用户在某个应用中的角色

地址: Get /openapi/company/{组织短名字}/app/{应用短名字}/role/member/{用户ID}/roles

返回参数格式如下:

  1. {
  2. "status": 0,
  3. "msg": "",
  4. "data": {
  5. "companyId": "k1Jw8ME8Gq",
  6. "appId": "7dAE5Ko59n",
  7. "userId": "k1Jw8ME8Gq",
  8. "roles": [
  9. {
  10. "roleId": "lKVZOnEBdk", // 角色ID
  11. "roleName": "MyApp-管理员" // 角色名称
  12. },
  13. {
  14. "roleId": "dl6EgeojP1",
  15. "roleName": "MyApp-用户"
  16. }
  17. ]
  18. }
  19. }