更新时间:2023-03-31 GMT+08:00
分享

数据接口

接口详情请参考第五章节《接口和样式参考.docx》

1、createSourceAttribute

接口用于存储资产来源属性:资产上架页,订购页都可能用,比如Astro轻应用资产上架页用于存储用户鉴权信息。

2、querySourceAttribute

接口用于用户查询来源属性值,资产上架页,订阅页都可能用。

3、filterSourceAttribute

资产上架过滤已被使用的来源属性:以Astro轻应用资产为例,因为不允许同一个资产对象多次被上架,此接口用于过滤已被上架过的资产对象,资产上架页调用。

4、querySubscriptionSourceAttribute

接口用于业务用户根据订阅实例号查询商品和用户属性,订阅页调用,查询订阅自定义属性。同时对订阅实例号与当前用户信息进行校验

5、notifySubscriptionStatus

接口用于适配器通知订阅实例状态,订阅页调用。

变更:为适配多来源底座,在通知订阅状态时,新增sourceId参数作为某一来源下的订阅实例状态,用于区分多来源部署状态划分。

6、recordLog

记录接口日志及操作日志。

7、uploadOBSObject

存入OBS对象,适用于ServiceStage类来源部署时,存入私仓中。

8、downloadOBSObject

获取OBS对象,适用于ServiceStage类来源发布时,从私仓中下载。

9、createOBSBucket

创建OBS桶,适用于serviceStage类安装时使用,创建的OBS桶信息存储进用户级来源属性信息内,每次进行安装是,校验当前用户当前来源下的‘User’级属性信息内是否存在桶信息,存在则直接使用,不存在则创建OBS桶,将桶信息存储进当前来源User级来源属性信息内。

10、fileDownload

附件下载接口,屏蔽基线接口校验,直接从租户公仓下载资源。

11、交互脚本(用于资产管理各个阶段调用适配器逻辑)

命名规范:适配器名称__Interaction

注意:交互脚本命名取适配器命名,否则在安装适配器时无法自动获取脚本脚本,需手动添加适配器交互脚本数据。

格式定义参考:

①提交资产上架申请

exportfunction submitAsset(sourceAttributes:object, sourceId:string):void{

// 实现资产上架时校验或其他操作

}

② 撤销/驳回资产上架申请

exportfunction cancelAsset(sourceAttributes:object, sourceId:string):

void{

// 实现资产上架驳回时校验或其他操作

}

③ 资产下架成功

exportfunction unshelfAsset(sourceAttributes:object, sourceId:string):

void{

// 实现资产下架成功时校验或其他操作

}

④ 资产上架申请成功

exportfunction submitAssetSuccess(sourceAttributes:object, sourceId:string, subjectId:string):

object{

//实现资产上架申请成功是需要触发的操作,新增入参subjectId为来源用户,因审批人发生变更,无法获取发布者信息,故添加入参。

}

⑤资产提交订阅申请

exportfunction subscribeAsset(sourceAttributes:object, sourceId:string):

void{

// 资产提交订阅申请时校验或其他操作

}

⑥ 撤销/驳回资产订阅申请

exportfunction cancelSubscribeAsset(sourceAttributes:object, sourceId:string):

void{

//撤销/驳回资产订阅申请时校验或其他操作

}

⑦删除资产申请

exportfunction deleteAsset(sourceAttributes:object, sourceId:string):void{

// 实现资产删除时删除相关附件或其他操作

}

交互脚本方法存在返回值时,根据业务需要在基线触发交互处,接收返回数据,并进行处理操作。

7,基线触发脚本:CP_DS__offeringPublishApplication

交互方式:

//调用适配器交互方法

const reservedField2 = dataParse['offering']['reservedField2'];

const sourceAttributes = dataParse['sourceAttributes'];

if(reservedField2 && sourceAttributes){

const sources =newQueryAssetSourcesList().run({ id: reservedField2 }).sources;

if(sources.length ==0){

throw new I18nError('CP_DS__NotFoundSource');

}

const interactionScript = sources[0].interactionScript;

if(interactionScript &&Object.keys(require(interactionScript)).indexOf('submitAssetSuccess')!=-1){

const sourceAttributesTmpl =require(interactionScript).submitAssetSuccess(sourceAttributes, reservedField2, owner);

if(sourceAttributesTmpl){

dataParse['sourceAttributes']= sourceAttributesTmpl;

}

}

}

此交互方式触发的适配器方法为submitAssetSuccess,并使用了该方法的返回值,回写进dataParse['sourceAttributes']。其余方法的触发调用与此类似,只需要变更需要触发的方法名称即可。

分享:

    相关文档

    相关产品