文档首页/ 工业数字模型驱动引擎/ 最佳实践/ 使用高代码服务编排自定义API
更新时间:2024-07-31 GMT+08:00
分享

使用高代码服务编排自定义API

工业数字模型驱动引擎-数据建模引擎(xDM Foundation,简称xDM-F)不仅为用户提供了丰富的标准API(如数据实体API、关系实体API、系统管理API),还提供了高代码的服务编排能力,适配Java和JavaScript类型服务编排。当iDME提供的标准API无法满足用户的业务需求时,用户可使用服务编排能力编排原子API形成一个跨实体(表)的组合API,提高应用开发的速度与质量。

当前服务编排管理功能仅支持在广州友好环境使用。

以如下示例场景及JavaScript类型服务编排为例,指导您如何使用高代码服务编排自定义API。

示例场景

假设在应用运行态有如下数据实体和关系实体,并基于这些实体创建了若干实例。希望自定义一个API,该API可根据票价和余票的具体值,查询票价≤票价具体值,余票≥余票具体值的电影院和影片信息,分页显示。例如,查询票价≤19.9,余票≥8的电影院ID、影片ID、票价和余票信息。

表1 实体

实体类型

实体名称

说明

数据实体

英文名称:Cinema

中文名称:电影院

用于存储电影院信息,如部门、收入等。

英文名称:Film

中文名称:影片

用于存储影片信息,如电影导演、主演、简介、语言、片长、类型等。

关系实体

英文名称:Play

中文名称:上映

为Cinema(源数据实体)和Film(目标数据实体)建立多对多关系。

关系实体属性包含票价(price)和余票(remain),均为数值型属性。

步骤1:创建高代码编排

  1. 登录应用运行态
  2. 在左侧导航栏中,选择服务编排管理 > 高代码编排,单击“创建”
  3. 在展开的“服务定义”页面,设置如下主要信息,其他保持默认,单击“保存”

    图1 创建服务编排
    表2 参数信息

    参数

    说明

    API英文名称

    输入“QueryByPriceRemain”

    API中文名称

    输入“按票价和余额查询”

    API英文描述

    输入“Query by price and remain”

    API中文描述

    输入“按票价和余额查询”

    API类型

    选择“JavaScript”

  4. 选择“脚本显示”页签,根据系统提供的参考样例,输入如下JavaScript编排脚本,单击“保存”

    var request = "";
    var sqlCount  = "select count(*) as count from TestDME_Play_REL p "; 
    var sql = "select c.name as cinema, f.name as film, p.price, p.remain from TestDME_Play_REL p ";
    sql += "left join TestDME_Cinema c on c.id = p._sourceid ";
    sql += "left join TestDME_Film f on f.id = p._targetid ";
    
    if (request.price != null && request.remain!=null)
    {
        sql += " where price <= {#price} and remain>={#remain} ";
        sqlCount += " where price <= {#price} and remain>= {#remain} ";
    }
    • TestDME_Play_REL/TestDME_Cinema/TestDME_Film:表示Play关系实体/Cinema数据实体/Film数据实体在数据库中的表名称。
    • id/name/_sourceid/_targetid/price/remain:表示实体表中的属性名称,即唯一编号(ID属性),名称,源数据实体(Cinema)的唯一编号(ID属性)、目标数据实体(Film)的唯一编号(ID属性)、票价和余票。
    • {#price}和{#remain}:数值型属性(票价和余票)的写法。如为文本类型属性,应修改为'{#price}'和'{#remain}'。

  5. “模拟API-输入参数”栏中,输入price和remain的参数值,单击“保存并执行”,验证JavaScript编排脚本。

    图2 模拟API

    returnTotalCountFlag参数是系统自动添加,如果returnTotalCountFlag为true,输出结果将返回数据实例总数。

  6. 选择“服务预览”页签,输入price和remain的参数值,单击“运行”,预览生产环境的运行效果。

    图3 服务预览

  7. 选择“服务发布”页签,确认该服务编排的基本信息、请求参数说明、响应参数说明、请求示例、正常响应示例等信息无误后,单击“发布”

步骤2:验证服务编排

  1. 应用运行态左侧导航栏中,选择数据服务管理 > 全量数据服务,进入全量数据服务页面。
  2. “分类”栏中,展开服务编排,找到并选择刚创建的服务编排(QueryByPriceRemain)。

    图4 全量数据服务

  3. 在API列表栏中,单击API英文名称,查看QueryByPriceRemain API的详细信息。

    图5 API详情

步骤3:使用服务编排API

根据QueryByPriceRemain API的详细信息,在用户应用的管理系统中构造如下请求示例:

POST http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/customservice/QueryByPriceRemain/execute/20/1 
Content-Type: Application/Json  
Content-Length: Content Length  
X-AUTH-TOKEN: XXXXXXXXXX  
{      
    "params": {          
        "price": 19.9,          
        "remain": 8,          
        "returnTotalCountFlag": true,      
    }  
}

其中,{Endpoint}表示数据建模引擎所在域名或IP地址,{appID}表示应用ID。

相关文档