文档首页 > > 开发指南> 服务集成开发指导> 函数API脚本开发>

编写函数API脚本(Java Script)

编写函数API脚本(Java Script)

分享
更新时间:2021/04/08 GMT+08:00

本节主要介绍在APIC自定义后端中开发函数API时,对于定义脚本的编写指导。

函数API通过编写函数脚本实现将多个服务封装成一个服务。

函数API使用Javascript编写函数,Javascript的运行采用java Nashorn的运行标准,支持ECMAScript Edition 5.1规范。Javascript引擎运行于java虚拟机,可调用自定义后端提供的Java类实现具体功能。

示例一 Helloworld

定义execute函数作为入口,execute函数返回的内容将作为Function API的响应Body。

1
2
3
function execute(data) {
    return "Hello world!"
}

示例二 获取请求参数

execute函数传入的data参数中包含了请求参数。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
function execute(data) {
    data = JSON.parse(data)
    return {
        "method":data["method"],
        "uri":data["uri"],
        "headers":data["headers"],
        "param":data["param"],
        "body":data["body"],
    }
}

示例三 设置响应参数

在execute函数中返回APIConnectResponse对象,可以指定调用函数API接口返回的HTTP状态码、返回头和body体。

1
2
3
4
importClass(com.roma.apic.livedata.provider.v1.APIConnectResponse);
function execute(data) {
    return new APIConnectResponse(401, {"X-Type":"Demo"}, "unauthorized", false);
}

此时,调用Function API返回的HTTP状态码为401,响应头中包含了“X-Type: Demo”,且响应body为“unauthorized”。

示例四 调用Java函数

以下示例中,使用importClass引入了Java类,并调用其中的函数。所有提供的Java类可参见函数API脚本的类说明

1
2
3
4
5
importClass(com.roma.apic.livedata.common.v1.Md5Utils);
function execute(data) {
    var sourceCode = "Hello world!";
    return Md5Utils.encode(sourceCode);
}

引用公共配置

  1. 登录ROMA Connect控制台,在“实例”页面单击实例上的“查看控制台”,进入实例控制台。
  2. 在左侧的导航栏选择“服务集成 APIC > 自定义后端”,在“配置管理”页面单击“添加配置”。
  3. 在添加配置弹窗中配置相关信息,完成后单击“确定”。
    表1 公共引用配置

    参数

    配置说明

    配置名称

    填写配置的名称,根据规划自定义。

    配置类型

    选择配置的类型,可选择“模板变量”、“密码”和“证书”。

    所属集成应用

    选择配置所归属的集成应用。

    配置值

    仅当“配置类型”选择“模板变量”和“密码”时需要配置。

    填写模板变量或密码的值。

    确认配置值

    仅当“配置类型”选择“密码”时需要配置。

    填写密码的值,需与“配置值”保持一致。

    证书

    仅当“配置类型”选择“证书”时需要配置。

    填写pem编码格式的证书内容。

    私钥

    仅当“配置类型”选择“证书”时需要配置。

    填写pem编码格式的证书私钥。

    密码

    仅当“配置类型”选择“证书”时需要配置。

    填写证书私钥的密码。

    确认密码

    仅当“配置类型”选择“证书”时需要配置。

    填写证书私钥的密码,需与“密码”保持一致。

    描述

    填写配置的描述信息。

  4. 在Java Script函数脚本中引用配置。
    假如配置名称为example,则引用格式如下:
    • 模板变量:#{example}
    • 密码:CipherUtils.getPlainCipherText("example")
    • 证书:CipherUtils.getPlainCertificate("example")
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问