更新时间:2024-04-25 GMT+08:00
分享

在服务编排或脚本中调用原生服务

使用说明

Native Service部署成功且在AstroZero中接入服务实例后,系统会把在Native Service中配置的API接口生成相应的restaction。在服务编排中,可进行调用该restaction。

前提条件

  • 已接入服务实例,具体操作请参考注册Native Service
  • 已在需要调用原生服务的应用中,添加待调用的原生服务。添加后,在该应用的服务编排中,才可以调用Native服务。
    • “Internal dependencies”为内部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时也会随应用打包发布出去。
    • “External dependencies”为外部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时不会打包出去。
    图1 应用中添加原生服务
  • 若AstroZero开启了根证书校验,请先上传原生服务的根证书,再调用原生服务。关于根证书的更多内容,请参考开启根证书校验

在服务编排中调用原生服务

  1. 参考如何登录经典应用设计器中操作,进入待调用原生服务的应用设计页面。
  2. 鼠标放应用的某个文件夹(如Logic)上,单击“+”,选择“服务编排”。
  3. 设置服务编排的标签和名称,单击“添加”。

    图2 添加一个空白的服务编排

  4. 在服务编排设计页面左侧的“Native服务 > Others”中,拖拽对应的原生服务图标至画布中。

    图3 拖拽对应的原生服务图标至画布中

  5. 单击,设置基本信息。

    图4 设置基本信息

  6. 单击,设置调用的服务参数。

    图5 配置服务
    • 操作方法:原生服务中,已自定义好的API接口。原生服务发布后,如果需要修改API,需要在API配置界面单击,取消发布后进行修改,修改后再保存并发布。已发布的API可能在服务编排中已使用,如果修改API会导致不兼容,请同步修改引用该API的服务编排。
    • 入参/目标:当选择具体操作方法(API)后,API的输入参数将会显示在入参的目标列。
    • 入参/源:服务编排中的变量,需要和目标的参数类型保持一致。该源会将服务编排中的变量,赋值给调用API的输入参数。
    • 出参/源:当选择具体操作方法(API)后,API的输入参数将会显示在出参的源列。
    • 出参/目标:服务编排中的变量,需要和输出参数的类型保持一致。API中的输出参数赋值给服务编排中的变量,供服务编排使用。

  7. 连接开始和原生服务图元。

    图6 连接图元

  8. 在页面上方,单击,保存服务编排。
  9. 保存成功后,单击,运行服务编排。

    显示下图信息,表示成功调用微服务。

    图7 返回成功

在脚本中调用原生服务

  1. 参考开发一个简单脚本实例中操作,创建一个空白脚本。

    图8 新建一个空白脚本

  2. 在脚本编辑器中,输入如下示例代码。

    import * as native from 'native';
    
    //namespace is needed for the service name
    let instance = native.getServiceInstance('test__NativeService1');
    //construct input params according to the method you invoke
    let params = {
        "access-token": context.getToken(),
        "title": "Hello",
        "price": 10.5,
        "author": "Lily",
        "description": "test"
    };
    let res = instance.invoke('health', params);
    
    console.log(res);

    脚本中加粗代码含义如下:

    • native”是系统预置的调用原生服务的标准库。
    • test__NativeService1”为变量,表示Native Service的名称,该名称要加命名空间前缀,与3中配置的“名称”取值保持一致。
    • health”表示要调用的原生服务的方法名,与5中配置的“操作名称”取值保持一致。
    • params”为原生服务的入参,请和配置API中方法“Header 参数”和“Body 参数”中的参数(参数名称和数据类型等)保持一致。如果没有入参,可像“let params = {};”示例代码一样传入空结构体。

  3. 在脚本编辑器上方,单击,保存脚本。
  4. 保存成功后,单击,执行脚本。
  5. 不用输入请求报文,直接单击测试窗口右上角的
  6. 在日志页签,可查看到如下信息,表明原生服务接口调用成功。

    0909 11:18:26.546|debug|vm[75]>>> Astro Zero 1.2.13.1 f96c695 2020-09-08 10:32:45 +0800 release
    0909 11:18:26.546|debug|vm[75]>>> node: 4
    0909 11:18:26.546|debug|vm[75]>>> script: test__NativeServicejs 1.0.1 
    0909 11:18:26.546|debug|vm[75]>>> locale: zh_CN
    0909 11:18:26.546|debug|vm[75]>>> timezone: (GMT+08:00) China Standard Time (Asia/Shanghai)
    0909 11:18:26.547|debug|vm[75]>>> Hello World (test__NativeServicejs.ts:12) 

分享:

    相关文档

    相关产品