华为云用户手册

  • 服务请求 调用服务的API API:context.service('{{url}}').run(_inputParams) 入参:“url”为服务接口的URL,在APP或者BO视图下单击“服务”,可查看到封装Flow、脚本或者对象操作接口的URL。“_inputParams”为输入参数。 示例: var _inputParams = {}; // 调用服务 context.service('{{ url }}').run(_inputParams).then(function(response) { // TODO: Your business logic });
  • BPM相关(原子级) context.$bp和context.$bpm的区别在于后者保证了操作的原子性。例如,调用context.$bp.submitTask (variables:object)数据提交成功时,会有弹框提示且点击“确定”按钮会自动关闭当前页面。而调用context.$bpm.submitTask (variables:object)提交时,只会提交任务而不会有后续的弹框提示等操作;并且当不在BPM上下文环境中提交任务时(即当BPM实例没有运行时提交任务),会有相关提示信息。 推荐使用context.$bpm。 获取参数信息 API:context.$bpm.loadVariables() 入参:无。 出参:参数对象。 示例: context.$bpm.loadVariables().then(function (data) { context.$model.ref("loanRequestData").setData(data.result.LoanRequestData); context.$model.ref("statusUpdates").setData(data.result.Status); context.$model.ref("negotiateCount").setData(data.result.NegotiateCount); }); 设置BPM中的变量 API:context.$bpm.putVariables (variables:object, instId: string) 入参:“variables”为参数对象,必选;“instId”为实例ID,可选。 出参:执行结果。 示例: context.$bpm.putVariables({ LoanRequest: "test" }); 数据提交到BPM API:context.$bpm.submitTask (variables:object) 入参:“variables”为参数对象,必选。 出参:无。 示例: var data = context.$model.ref("loanRequestData").getData(); context.$bpm.submitTask({ LoanRequest: data });
  • BPM相关(非原子级) 获取参数信息 API:context.$bp.loadVariables() 入参:无。 出参:参数对象。 示例: context.$bp.loadVariables().then(function (data) { context.$model.ref("loanRequestData").setData(data.result.LoanRequestData); context.$model.ref("statusUpdates").setData(data.result.Status); context.$model.ref("negotiateCount").setData(data.result.NegotiateCount); }); 设置BPM中的变量 API:context.$bp.putVariables (variables:object, instId: string) 入参:“variables”为参数对象,必选;“instId”为实例ID,可选。 出参:执行结果。 示例: context.$bp.putVariables({ LoanRequest: "test" }); 数据提交到BPM API:context.$bp.submitTask (variables:object) 入参:“variables”为参数对象,必选。 出参:无。 示例: var data = context.$model.ref("loanRequestData").getData(); context.$bp.submitTask({ LoanRequest: data });
  • 页面类 获取当前页面 API:context.$page.current 当前页面绑定的数据模型 API:context.$page.getModel() 页面URL参数 API:context.$page.params.paramName 示例: // 假设当前页面URL为:https://localhost:8080/besBaas/page#/std_1?a=1&b=2, 则获取URL参数方式如下: let paramA = context.$page.params.a let paramB = context.$page.params.b 在新的导航条打开页面 API:context.$page.open(url: string, queryString: string) 入参:url表示页面地址。queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 示例: context.$page.open('https://localhost:8080/besBaas/page#/std_2', 'a=1&b=2') 在当前导航条打开页面 API:context.$page.load(url: string, queryString: string) 刷新当前页面 API:context.$page.reload() 在新的导航条打开标准页面 API:context.$page.openStdPage(pageName: string, queryString: string) 入参:pageName表示页面名称。queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 示例: context.$page.openStdPage('std_2', 'a=1&b=2') 在当前导航条打开标准页面 API:context.$page.loadStdPage(pageName: string, queryString: string) 在新的导航条打开高级页面 API:context.$page.openAdvPage(pageName: string, websiteName:string, queryString: string) 入参:pageName表示页面名称。websiteName表示为高级页面的站点名称,queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 在当前导航条打开高级页面 API:context.$page. loadAdvPage (pageName: string, websiteName:string, queryString: string) 关闭当前页面 API:window.close() 图2 关闭页面语句
  • 表单类 获取当前表单 API:context.$component.form 如果当前组件为表单,则直接返回。否则,根据组件上下文向上查找最近的表单组件。 根据组件Key值获取表单 API:context.getFormByKey(_formKey: number) 入参:表单组件的Key值,类型为number。 校验整个表单 API:_form.formValidate() _form为已获取的表单组件,返回promise。 API:_form. formValidateUnPromise 非promise,返回true/false。 表单的单字段校验: API:_form.validateField(prop, callback) 参数prop为需校验的属性,参数callback为检验完回调函数,返回错误信息。 示例: _form.validateField("name",function(errorMsg){ console.log("validate field", errorMsg) }); 表单重置 API:_form.resetFields() _form为已获取的表单组件。 表单提交 API:_form.formSave() _form为已获取的表单组件。API内部实现已先进行表单校验,校验成功后进行提交保存操作。
  • 表格类 获取当前表格 API:context.$component.table 如果当前组件为表格,则直接返回。如果当前组件有关联的表格,则返回对应的表格(如表格查询条件、分页等)。否则,根据组件上下文向上查找最近的表格组件。 获取查询条件 API:_table.getCondition() _table为已获取的表格组件,返回表格绑定的查询条件。 设置查询条件 API: // 先获取条件,再进行赋值 var condition = _table.getCondition(); // 字段满足单个条件,默认操作是contains condition.queryInfo = { "fieldName": "1" } // 字段满足单个条件,使用自定义操作 condition.queryInfo = { "fieldName": { operator: "contains", value: "1" } } // 字段满足多个条件 condition.queryInfo = { "fieldName": [{ operator: "contains", value: "1" }, { operator: "contains", value: "2" }] } // 分页条件 condition.pageInfo: { "pageSize": 10, "curPage": 1 } 其中,“_table”为已获取的表格组件。 入参:表格查询条件。 执行查询 API:_table.doQuery() 其中,“_table”为已获取的表格组件。 初始化行数据 API:_table.rowInit() 其中,“_table”为已获取的表格组件,初始化一条新的行数据,此方法执行后,数据并未添加到表格。 添加行数据 API:_table.addrow(newRowData: object) 其中,“_table”为已获取的表格组件,此方法将初始化好的行数据添加到表格,此方法执行后,数据仅在前端表格保存,并未持久化到后端。 入参:行数据。 获取表格当前选中的行数据 API: _table.getSelectedData() 其中,“_table”为已获取的表格组件。 删除表格行数据 API:_table.doDelete(rows: array) 其中,“_table”为已获取的表格组件。 入参:表格行数据列表。 示例: // 当前表格 let _table = context.$component.table // 获取当前选中的行 let rows = _table.getSelectedData() // 删除选中行 _table.doDelete(rows) 获取表格修改的数据(新增、修改、删除) API:_table.getOperatedData() 其中,“_table”为已获取的表格组件。 保存表格数据 API:_table.doSave(operatedData: object) 其中,“_table”为已获取的表格组件,此方法将当前表格做的修改操作进行持久化操作。 入参:修改的表格数据。 示例: // 当前表格 let _table = context.$component.table // 获取修改的数据 let operatedData = _table.getOperatedData() // 提交表格修改 _table.doSave(operatedData)
  • 组件类 获取当前组件 context.$component.current 根据KEY获取组件 API:context.$component.get(_compKey: number) 入参:组件KEY,类型为number。 出参:Component。 示例如下: let _compKey = 1546395654403000 let _component = context.$component.get(_compKey) 根据名称获取组件 API:context.$component.get(_compName: string) 示例如下: let _compName = 'input_1' let _component = context.$component.get(_compName) 获取组件绑定的模型 API:_component.getDataModel() _component为当前操作的组件。 示例如下: let _component = context.$component.current let _model = _component.getDataModel()
  • 请求示例 已创建好OBS类型连接器,连接器实例名称为“命名空间__TestOBS”,执行如下请求,列举OBS桶中“a/b/c”路径下文件,起始文件为“1.txt”。 GET https://AstroZero 域名 /u-route/baas/sys/v1.1/connectors/obs/命名空间__TestOBS/listdir?dir=a/b/c&max-keys=1000&marker=a/b/c/1.txt
  • URI GET AstroZero域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/listdir?dir=path&max-keys=A&marker=B 表1 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时设置的连接器实例名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 dir 是 String 参数解释: 要列举的目录,如果目录为空或者“/ ”,则代表列举根目录。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 max-keys 否 Number 参数解释: 最大访问文件个数,最大支持1000个,缺省值为“1000”。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 marker 否 String 参数解释: 起始访问位置文件,注意起始位置文件并不会包含到返回结果中,且起始访问文件必须是全路径的,即包含目录。 如果不指定,则从头开始。 示例:marker=a/b/c/1.txt。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": [{ "name": "test.zip", "isDir": false, "size": 833154 }, { "name": "图片_20201220181511.png", "isDir": false, "size": 78530 }, { "name": "月度总结.txt", "isDir": false, "size": 824 } ] }
  • 响应参数 表2 响应参数说明 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 result Array of objects 参数解释: 返回目录的文件列表,列表中元素字段含义如下: name:文件名或目录路径。 isDir:是否为目录。 size:文件大小。
  • 调用接口 根据请求URI和请求方法,明确请求如下。 GET https://appcube.cn-north-4.huaweicloud.com/u-route/baas/metadata/v1.0/object?flag=S&type=cst,std URI中参数说明如下: flag=S:查询对象结果不带任何其他关联信息(默认)。 flag=D:查询没有关联Tab的对象。 type=cst:查询用户自定义对象(如果没有type则为该值,默认值)。 type=std:查询标准对象。 type=stp:查询setup对象。 type=cst,std:查询自定义对象和标准对象,其他组合类似,中间用逗号隔开。 对象列表以对象名按照字母A-Z进行排序。 设置请求消息头。 表1 请求消息头 消息头名称 描述 是否必选 Content-Type HTTP协议中设定的一个参数,用于标识返回的内容用什么格式去解析,此处必须配置为“application/json”。表示浏览器将返回内容解析为json对象。 是 access-token 当用户登录系统鉴权成功后,后台会生成一个token,在响应消息中携带,并存在浏览器中。下次再调用请求后,会带上这个token,表示这个用户已经被鉴权过。 是 该接口不用构造请求消息体。返回如下响应,表示成功查询对象列表。 { "resCode": "0", "resMsg": "成功", "result": [ { "id": "stad00000000000000GH", "keyPrefix": "10gh", "name": "AttachFile", "category": 2, "label": "Attach File", "pluralLabel": "Attach Files", "version": 55834574848, "contextSetup": 0, "trackFieldHistory": false, "allowReports": false, "allowActivities": false, "allowChatter": false, "allowStreamingApiAccess": false, "allowBulkApiAccess": false, "allowSearch": false, "allowSharing": false, "sharingMode": 0, "deploymentStatus": 0, "properties": "", "status": 0, "createdBy": "", "createdDate": "", "lastModifiedBy": "", "lastModifiedDate": "", "description": "", "objectType": 0, "protectMode": 0, "installedPackage": "", "createdBy.name": "", "lastModifiedBy.name": "", "childObjects": null, "parentObjects": [ { "parentObject": "stad00000000000000GD", "cascadeDelete": false }, { "parentObject": "stad00000000000000GG", "cascadeDelete": false }, { "parentObject": "stup000000000000002I", "cascadeDelete": false }, { "parentObject": "stup000000000000003L", "cascadeDelete": false } ] } ] }
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": [ { "TestProject__address__ CS T": null, "createdBy": "10gd000000SDzgxNSckK", "createdBy.__objectType": "User", "createdBy.name": "test", "createdDate": "2020-05-28 14:34:40", "currencyIsoCode": "", "id": "cfw0000000aKin6AQgfQ", "installedPackage": null, "lastModifiedBy": "10gd000000SDzgxNSckK", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test", "lastModifiedDate": "2020-05-28 15:03:15", "name": "newName", "owner": "10gd000000SDzgxNSckK", "owner.__objectType": "User", "owner.name": "test" }, { "TestProject__address__CST": null, "createdBy": "10gd000000SDzgxNSckK", "createdBy.__objectType": "User", "createdBy.name": "test", "createdDate": "2020-05-28 15:10:38", "currencyIsoCode": "", "id": "cfw0000000aKlMSFn7vk", "installedPackage": null, "lastModifiedBy": "10gd000000SDzgxNSckK", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test", "lastModifiedDate": "2020-05-28 15:10:38", "name": "test2", "owner": "10gd000000SDzgxNSckK", "owner.__objectType": "User", "owner.name": "test" } ] }
  • 响应参数 表2 响应参数 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 result Number 参数解释: 删除记录的个数,响应成功时携带。 取值范围: 数字,一般删除成功为“1”。
  • 连接器 预置连接器接口,包括上传、下载、删除文件和目录等接口。通过这些接口,您可以实现文件的上传、下载和列举目录下文件等。 表7 连接器接口 API 说明 上传文件 将本地文件上传到存储中。使用该API上传文件,默认只会上传到连接器下配置的第一个桶中。 下载文件 从存储中下载文件。 删除文件 从存储中删除无用的文件。 删除目录 从存储中删除某目录。如果目录下不为空,删除目录的同时也会删除该目录下文件。 列举目录下文件 列举存储中某目录下文件。 分段上传 对于较大文件上传,可以切分成段上传。用户可以在如下的应用场景内(但不仅限于此),使用分段上传的模式: 上传超过100MB大小的文件。 网络条件较差,和OBS等存储服务端之间的链接经常断开。 上传前无法确定将要上传文件的大小。 获取endpoint,即文件存储地址的前缀 endpoint为文件存储地址的前缀,该前缀加上传对象的路径,是实际访问对象的全路径。上传文件中,返回的是上传文件在桶上的路径。通过调用本节接口,返回endpoint,组装起来才是文件完整的访问地址。 分享Token 通过调用获取分享Token,可以获取临时Token,用户只要使用该临时Token即可访问文件,不用再使用“access-token”进行鉴权。
  • 导入导出 对象数据导入导出接口,包括导入数据、导出数据和导入导出元数据等接口。通过这些接口,您可以导入导出对象数据或元数据,实现数据的迁移。 表6 导入导出接口 API 说明 导出数据 导出数据表中的具体数据。AstroZero中创建的对象,其内部的数据是支持导出的,该接口支持将对象中的数据按照设定的周期频率、筛选条件进行导出。 导入数据 导入数据。导入的数据源为zip包,包中的数据文件应为txt或csv格式,每个文件第一行为数据所属对象信息,第二行为字段名,第三行开始每一行为一条数据记录。 导出元数据 导出数据表的元数据,即将数据表的各个字段信息导出,但不包含具体的数据记录。 导入元数据 导入数据表的元数据。若已有数据表的元数据,可使用该功能快速根据元数据创建对象表。 使用模板导入数据 按照所使用的模板格式,导入数据。使用该功能前,需要创建好可使用的数据导入模板,在模板中定义数据的映射规则,调用接口时需指定模板名称,在该模板中,需要指定对应的操作脚本。
  • BPM 工作流接口,包括启动、查询和删除工作流等接口。通过这些接口,您可以启动工作流实例、删除工作流实例和挂起/恢复/终止工作流实例等。 表5 BPM接口 API 说明 启动BPM实例 创建并启动一个BPM实例。 查询BPM实例 获取当前账号所有的BPM实例信息。 挂起/恢复/终止BPM实例 挂起/恢复/终止一个BPM实例。BPM实例被挂起后,不会在用户的待办任务列表中出现,流程SLA定时器停止,也不会进行任何跟催。恢复后,可继续进行操作。终止操作则强行结束一个BPM实例,可在历史任务中查看。 删除BPM实例 删除一个BPM实例。彻底删除一个BPM实例,仅当管理员清除过期数据时可以删除,其他情况不建议删除BPM实例数据。 配置或修改BPM实例中变量的值 设置或修改BPM实例中变量的值, 一次可以修改一个、多个或者所有变量的值。不存在的变量或者只读变量会被忽略。
  • 元数据 元数据接口,包括创建对象、服务编排和工作流等接口。通过这些接口,您可以新建对象、新建服务编排对象和新建工作流对象等。 表2 元数据接口 API 说明 创建自定义对象 添加一个Object对象。 查询所有自定义对象 查询所有Object对象。 按照object_id查询自定义对象 按照ID查询Object。 根据object_id添加字段 为object添加自定义字段。 根据object_id新增trigger 根据object_id新增trigger。 根据object_id新增校验validator 根据object_id新增校验validator。 根据object_id新增layout 按object_id新增layout。 根据field_id查询Field 按照field_id查询Field。 根据object_id查询layout 按照object_id查询layout。 根据layout_id查询layout 按照layout_id查询Layout。 根据object_id查询button 按照object_id查询button。 根据button_id查询button 按照button_id查询Button。 根据object_id查询trigger 按照object_id查询trigger。 根据trigger_id查询trigger 按照trigger_id查询Trigger。 根据object_id查询validator 按照object_id查询validator。 根据validator_id查询validator 按照validator_id查询validator。 创建Flow对象 添加一个flow对象。 查询Flow对象 获取匹配查询条件的flow列表。 按照flow_id查询/查询flow_id的入参出参信息 按flow_id查询Flow/查询flow_id的入参出参信息。 根据flow_id修改Flow对象 根据id修改flow对象。 按照flow_id删除flow 按flow_id删除Flow。 创建BPM对象 创建一个BPM对象。 按条件查询BPM对象 获取匹配查询条件的BPM列表。 按ID查询BPM对象 按bpm_id查询BPM对象。 根据ID修改BPM对象 根据id修改BPM对象。 按照ID删除BPM 按bpm_id删除BPM。 创建Picklist对象 创建一个Picklist对象。 查询选项列表值集 查询选项列表值集。 按ID增加选项列表值集的值 按picklist_id增加选项列表值集的值。 根据ID查询选项列表值集或引用该选项列表值集的对象字段列表 根据ID查询选项列表值集或引用该选项列表值集的对象字段列表。 根据ID修改选项列表值集的基本信息 根据id修改Picklist对象。 根据ID删除选项列表值集或选项列表值集的值 根据ID删除选项列表值集或选项列表值集的值。 列出所有应用 查询当前账号下所有应用。 根据ID查询应用 根据应用ID查询应用详细信息。 查询标准页面列表 查询标准页面的列表,仅包含基础信息,如果需要获取标准页面的内容,需要根据 ID 进行查询。 根据ID查询标准页面 按view_id查询标准页面。 查询Tab列表 查询应用页签的列表。
  • 数据模块 数据模块接口,包括按记录ID查询、删除和更新数据等接口。通过这些接口,您可以查询对象中的数据,为对象新增数据等。 表1 数据模块接口 API 说明 按记录ID查询数据 按记录ID查询数据。 按记录ID删除数据 按记录ID删除数据。 按记录ID更新数据 按记录ID更新数据。 按记录ID列表查询数据 按记录ID列表查询数据。 新增对象数据 新增对象数据。 按记录ID列表删除数据 按记录ID列表删除数据。 按条件更新数据 按条件更新数据。 按条件查询对象数据 按条件查询对象数据。 按条件删除对象数据 按条件删除对象数据。 按条件查询对象记录数 按条件查询对象记录数。 批量插入或修改对象数据 批量插入或修改对象数据,若数据包含id进行更新,若数据不含id进行插入。
  • URI DELETE AstroZero域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/deldir?dir=path 表1 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时设置的连接器实例名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 dir 是 String 参数解释: 要删除的目录,如果目录为空或者“/ ”,则代表删除根目录。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。
  • 组件 在开发自定义组件时,需要定义“组件名.js”文件,该文件为组件逻辑文件,是整个组件的渲染核心JS,在组件编辑状态和页面最终的发布运行态都会被加载执行。主要包含的预置API说明,请参见表1。 表1 组件名.js中预置API说明 分类 API及说明 组件实例预置API init方法:主要包含组件渲染需要初始化数据的入口函数。 render方法:负责整个组件渲染的业务逻辑方法。 getConnectorProperties:获取桥接器属性的配置值。 getConnectorInstanceByName:通过桥接器的变量名称获取桥接器实例,其中“APIConnector”类型为String,表示桥接器的变量名称。 ConnectorIns.process(renderCbk, errCbk):通过桥接器实例调用process函数,主要作用为发起调用服务的请求和处理返回结果信息。 在通过process函数发起请求前,需设置桥接器实例的requestParams属性为请求的参数,例如:ConnectorIns.requestParams = param; 参数renderCbk,类型为Function,当返回结果信息后调用该函数,用于处理返回信息。 参数errCbk,类型为Function,调用该函数来处理错误。 ConnectorIns.query(param):通过桥接器实例调用query函数,主要作用为发起调用服务的请求和处理返回结果信息,参数说明如下: param:请求参数。 其返回结果为Promise对象。 getProperties:用于返回该组件的自定义属性值。 开发Widget时,可以给组件自定义属性,在开发界面可对这些属性进行配置,通过getProperties方法可返回自定义属性值。例如,var properties = thisObj.getProperties()。 getContainer:用于返回渲染该组件的容器dom节点。 代码示例:var elem = thisObj.getContainer (),然后通过jquery去查询组件中某个dom节点时,可通过$("#id", elem)的方式来获取。 getWidgetBasePath:用于返回该组件静态资源的根路径。 例如,某个组件的静态资源路径为“https://10.10.10.1:12900/default/0000000000NABzEjpNIH/assets/bundle/widget/172a6056501-a6f8ce1f-2ed9-4a9a-b883-251aaac14e0a/v1591923270914/test0609.js”,执行thisObj.getWidgetBasePath()返回“https://10.10.10.1:12900/default/0000000000NABzEjpNIH/assets/bundle/widget/172a6056501-a6f8ce1f-2ed9-4a9a-b883-251aaac14e0a/v1591923270914” 。 getMessages:返回该组件国际化配置文件中定义的国际化文件内容,需要配置vue和vueI18n使用。 例如,开发组件时定义了messages-en.json和messages-zh.json国际化文件。thisObj.getMessages()返回的就是这两个文件中定义的国际化内容。 hideWidget:隐藏该组件的dom结构,预览时调用该方法可以隐藏Widget。 例如,执行thisObj.hideWidget()方法,隐藏该组件的dom结构。 showWidget:显示该组件的dom结构,预览时调用该方法可以展示Widget。 例如,执行thisObj.showWidget()方法,显示该组件的dom结构。 SITE_ROOT_PATH:为AstroZero预置的参数,用于获取当前站点URL地址的根路径。站点和应用是一对一的关系,当创建应用时,系统默认会创建并分配一个站点。 假如,某个页面的URL地址为“https://10.10.10.1:12900/magno/render/cool__app_0000000000NABzEjpNIH/page1”,则使用SITE_ROOT_PATH获取的根路径为“/magno/render/cool__app_0000000000NABzEjpNIH”。 triggerEvent:用于触发事件,参数说明如下: eventName:指定触发的事件名称。 {}:为事件触发时传递的参数赋值,例如{param: value}。 Studio对象预置API Studio.registerWidget:用来定义组件。 Studio.registerConnector:用来定义桥接器。 Studio.registerEvents:用于注册事件,只有通过此API注册后的事件才会在组件的事件列表中展现。 thisObj:当前组件实例对象,指为该组件注册事件。 "eventName":事件名称,应该与触发事件API中的第一个参数保持一致。 "Event Label":事件标签名,在事件列表中展示的事件标题。 []:定义该事件触发时传递的参数模型,例如[{"name": "param"}] 。 Studio.registerAction:用来注册动作。只有通过此API注册后的事件,才会在组件的动作列表中展现。 thisObj:当前组件实例对象,指为该组件注册动作。 actionName:动作名称。 Action Label:动作标签名,在动作列表中展示的动作标题。 []:事件触发时传入的参数。 $.proxy(this.receiveActionCbk, this):该动作的回调函数,在回调函数中定义该动作的执行逻辑。 []:此参数在开发过程中置为空数组即可。 Studio.registerRouter:用来定义路由。 Studio.inReader:判断当前页面状态是开发态或预览态。其中,“true”表示在预览态(即运行态),“false”表示在开发态。 StudioToolkit.getCatalogProperties():用于获取当前站点的元数据。 magno对象预置API savePropertiesForWidget(props):用于在开发态中保存当前组件的高级设置属性信息,参数为要设置的相关属性集对象。 参数props示例: { "prop1": "value1", "prop2": ""value2" } HttpUtils工具类预置API AstroZero平台内置了HttpUtils工具类,预置API如下: HttpUtils.getCookie:用于获取某个cookie的值。 代码示例:HttpUtils.getCookie() HttpUtils.setCookie:用于设置cookie的值。 代码示例:HttpUtils.setCookie("key","value") HttpUtils.getI18n:返回一个Vue18n的实例,配合Vue和VueI18n使用。该Vue18n实例可以在new一个Vue实例时赋值为i18n参数。 代码示例:HttpUtils.getI18n({locale: HttpUtils.getLocale(), messages: thisObj.getMessages()}) HttpUtils.getCsrfToken:通过ajax的方式去调用平台的接口时使用。如果使用平台桥接器的方式,平台会自动在请求header中,添加csrf-token头。 HttpUtils.getCsrfToken(function(csrfToken) { $.ajax({ …. headers: { CSRF-Token: csrfToken }, }) }) HttpUtils.refreshToken:用于手动刷新页面的accesstoken,通常用在执行退出逻辑时,执行该方法刷新页面的access token。 HttpUtils.getUrlParam:用于获取查询字符串中的参数。 例如,某个页面的URL为“https://10.10.10.1:12900/magno/render/cool__app_0000000000NABzEjpNIH/page1?param=1”, 通过执行HttpUtils.getUrlParam("param")返回该参数的值“1”。 HttpUtils.getLocalStorage:用于获取某个localStorage的值。 代码示例:HttpUtils.getLocalStorage("key") HttpUtils.setLocalStorage:用于设置某个localStorage的值。 代码示例:HttpUtils.setLocalStorage("key","value")
  • URI GET AstroZero域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/getendpoint 表1 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时设置的连接器实例名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。
  • 响应参数 表2 响应参数说明 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 result Object 参数解释: 如果请求成功,返回“endpoint”,即文件存储地址的前缀。“endpoint”和上传文件返回的上传文件,在桶上的路径组装起来才是文件完整的访问地址。
  • 权限和授权项 在AstroZero中,可以通过设置权限配置Profile,来配置用户权限。系统预置了如下几种Profile,禁止删除: System Administrator Profile:系统管理员,拥有AstroZero全部权限。 Developer Profile:开发者权限,一般给用户使用,拥有此权限的用户可以在AstroZero进行开发,例如新增一个对象、为对象增加一个字段、新增一个流程等。 Portal User Profile:业务用户的权限,一般给业务用户使用,拥有此权限的业务用户可以通过服务编排鉴权登录AstroZero。 Anonymous User Profile:游客用户的访问权限,请根据自身业务需求,给Profile分配适当的权限。 Standard User Profile:运行态权限,开通AstroZero服务时自带的权限,拥有这个权限可以运行系统中的流程、对系统已有对象进行记录的增删改查操作,但没有开发权限,如新增一个对象或新增一个流程等。 NoCode Developer Profile:零代码应用开发权限,只有运行环境才会预置该权限。 NoCode Manager Profile:零代码应用数据管理权限,只有运行环境才会预置该权限。 一个Profile可以分配给很多用户,但是每个用户有且只有一个Profile。Profile能够控制权限列表如下,具体Profile权限配置请参考管理权限配置。 基本权限控制 基本权限是指操作AstroZero内置的资源时,在接口上设置权限校验,当前Profile需要勾选上对应的权限项才能通过访问,否则会报权限错误,对应状态码“403”。例如,创建对象需要开发应用权限,创建用户需要管理用户权限等。 App与Menu展示控制 控制用户在打开应用时,默认展示的应用及展示应用下的哪个菜单项。仅在前端做页面控制。 对象、字段权限控制 用户在访问具体对象字段数据记录时的权限控制。其中,对象权限包括: 读取: 读取对象记录的权限,没有此权限访问对象数据时会报无权限。 创建: 创建对象记录的权限。 编辑:修改对象记录数据的权限。 删除:删除对象记录的权限。 查看全部: 能够查看该对象的所有记录,不管该记录是否属于操作者(OWNER)。 修改全部:能够增删改对象的所有记录,不管该记录是否属于操作者(OWNER)。 API读: 通过HTTP接口发起读取操作,不影响在服务编排、脚本等发起的操作。 API写:通过HTTP接口发起写操作,不影响在服务编排、脚本等发起的操作。 某些特殊的对象不允许直接访问,如User对象,所有Profile只开放读取功能,增删改都要通过接口来操作。字段权限如下: 读: 读取某个字段值的权限 写:修改某个字段值的权限 某些对象的某些字段不允许直接读取与修改,如User对象的密码字段等。 对象标准页面的展示控制 展示对象的默认布局,包括列表页,详情页,创建与编辑布局。 仅供页面展示使用。 接口访问控制(服务编排、脚本、BPM) 在运行服务编排、脚本或BPM资源时需要检查是否拥有该资源的运行权限,如果没有则报错。例如,需要运行脚本“view_product” ,则需要勾选上“view_product” 的运行权限才能运行。 连接器访问控制 目前只向对外提供HTTP接口的连接器进行权限控制,包括S3、OBS、MINIO、ObjectStorageProxy类型连接器。 在运行这些连接器的接口时,需要检查其运行权限。 事件访问控制 目前只向对外提供HTTP接口的事件进行权限控制,例如发送某种类型事件的权限。 业务权限访问控制 是否拥有指定的业务权限。
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": [ { "TestProject__address__CST": null, "createdBy": "10gd000000SDzgxNSckK", "createdBy.__objectType": "User", "createdBy.name": "test0xx", "createdDate": "2020-05-28 14:34:40", "currencyIsoCode": "", "id": "cfw0000000aKin6AQgfQ", "installedPackage": null, "lastModifiedBy": "10gd000000SDzgxNSckK", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test0xx", "lastModifiedDate": "2020-05-28 14:34:40", "name": "testd", "owner": "10gd000000SDzgxNSckK", "owner.__objectType": "User", "owner.name": "test0xx" } ] }
  • 响应参数 表1 响应参数 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 result Array 参数解释: 成功返回会返回该账号下所有定义的Object对象,以一个列表展示,每个值是一个对象。
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": [ { "id": "cust000000aKtFZpERvc", "keyPrefix": "c02W", "name": "SmartCampus__OperatorOrganization__CST", "category": 3, "label": "OperatorOrganization", "pluralLabel": "OperatorOrganizations", "version": 7, "contextSetup": 0, "trackFieldHistory": false, "allowReports": false, "allowActivities": false, "allowChatter": false, "allowStreamingApiAccess": false, "allowBulkApiAccess": false, "allowSearch": false, "allowSharing": false, "sharingMode": 0, "deploymentStatus": 0, "properties": "", "status": 0, "createdBy": "10gd000000SDyqaQW6uu", "createdDate": "2020-03-12 15:14:56", "lastModifiedBy": "10gd000000SDyqaQW6uu", "lastModifiedDate": "2020-03-12 15:15:00", "description": "", "objectType": 0, "protectMode": 1, "installedPackage": "003L000000YGxJbahwps", "createdBy.name": "test0xx", "lastModifiedBy.name": "test0xx", "childObjects": null, "parentObjects": [ { "parentObject": "cust000000PeSg3hYOOG", "cascadeDelete": true }, { "parentObject": "stad00000000000000GD", "cascadeDelete": false }, { "parentObject": "stad00000000000000GG", "cascadeDelete": false }, { "parentObject": "stup000000000000002I", "cascadeDelete": false }, { "parentObject": "stup000000000000003L", "cascadeDelete": false } ] }, { "id": "cust000000aKoa6I4E6K", "keyPrefix": "cE6K", "name": "test__qw__CST", "category": 3, "label": "qw", "pluralLabel": "qws", "version": 3, "contextSetup": 0, "trackFieldHistory": false, "allowReports": false, "allowActivities": false, "allowChatter": false, "allowStreamingApiAccess": false, "allowBulkApiAccess": false, "allowSearch": false, "allowSharing": false, "sharingMode": 0, "deploymentStatus": 0, "properties": "", "status": 0, "createdBy": "10gd000000SDyqaQW6uu", "createdDate": "2020-05-28 15:55:42", "lastModifiedBy": "10gd000000SDyqaQW6uu", "lastModifiedDate": "2020-05-28 17:47:03", "description": "", "objectType": 0, "protectMode": 0, "installedPackage": "", "createdBy.name": "test0xx", "lastModifiedBy.name": "test0xx", "childObjects": null, "parentObjects": [ { "parentObject": "stad00000000000000GD", "cascadeDelete": false }, { "parentObject": "stad00000000000000GG", "cascadeDelete": false }, { "parentObject": "stup000000000000002I", "cascadeDelete": false }, { "parentObject": "stup000000000000003L", "cascadeDelete": false } ] } ] }
  • URI GET AstroZero域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/viewobject?object=X&x-image-process=Y 表1 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时设置的连接器实例名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 object 是 String 参数解释: 文件所在桶里的全路径,包含文件名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 x-image-process 否 String 参数解释: 在OBS中定义,表示图片处理服务,更多介绍参见《图片处理特性指南》。 示例: 命令方式:x-image-process=image/commands 样式方式:x-image-process=style/stylename 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。
  • 响应消息体(可选) 响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于使用OAuth 2.0的客户端鉴权模式,获取的用户access_token接口,返回如下消息体。其中,“access_token”是需要获取的用户Token,取值以变量“XXX”表示。有了Token之后,您可以使用access_token认证调用其他API。 { "access_token": "XXX", "expires_in": 600, "token_type": "Bearer" } 当接口调用出错时,会返回错误码“400”及错误信息说明,错误响应的Body体格式如下所示。 { "error": "unauthorized_client", "error_description": "The client is not authorized to request a token using this method." } 其中,error表示错误提示,error_description表示错误描述信息。
  • URI DELETE AstroZero域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/delobject?object=X 表1 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时设置的连接器实例名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 object 是 String 参数解释: 文件所在桶里的全路径,包含文件名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。
共100000条