使用HSF-REST功能,您可以将您在EDAS中的HSF服务快速发布到云服务总线CSB上,并支持外部服务通过Restful API访问和调用该服务。

前提条件

在开放HSF服务前,您需要在应用所在VPC内新建或扩容服务开放实例,详情请参见管理服务开放实例。如果选择扩容实例,还需要提交工单,由技术支持人员为您升级实例版本。

步骤一:选择HSF服务

  1. 登录EDAS控制台
  2. 在左侧导航栏中选择组件中心 > 云服务总线 > HSF-REST
  3. HSF服务列表页面依次选择地域EDAS命名空间HSF应用名HSF服务名:版本号,然后单击搜索

    如果服务较多,可以在HSF方法名右侧文本框中输入关键字,然后单击搜索,以提高搜索效率。HSF方法名支持不区分大小写的部分匹配。

  4. 在HSF服务列表中选中要开放的服务。

步骤二:发布HSF服务

  1. 选择HSF服务后,在HSF服务列表右上角单击发布REST服务
  2. 发布REST服务对话框中设置发布参数,然后单击确认
    Csb Hsf Rest PubService

    发布参数说明:

    • 应用所在VPC:HSF服务所属应用所在的VPC。
    • 目标CSB实例:要发布到的CSB实例。
    • CSB服务组:要发布到的CSB实例中的服务组。如果当前实例中无服务组,可以在右侧单击新建服务组创建服务组,然后再选择。
    • CSB服务版本:发布的服务的版本。
    • HSF超时时间(ms):访问该服务的超时时间。
    • 每秒调用链限制:服务开放后,每秒允许调用该服务的最大值。0表示不限制。
    • 公开访问:是否允许公开访问。公开访问指不需要订购服务就可以访问和调用该服务。
    • 覆盖发布:如果之前已经发布过,此次发布是否覆盖之前发布的版本。

步骤三:确认发布结果

  1. 在EDAS控制台左侧导航栏中选择组件中心 > 云服务总线 > HSF-REST
  2. HFS服务列表页面中的已发布CSB服务列查看您之前发布的HSF服务。
    说明 在HSF服务发布到CSB后,就变成了一个CSB服务。

    如果发布的服务较多,可以选择地域EDAS命令空间HSF应用名HSF服务名:版本号,并输入HSF方法名关键字,然后单击搜索,方便查找。

  3. 单击服务名,进入CSB控制台,可以查看该服务的详细信息。

步骤四:访问发布的HSF服务

在HSF服务发布到CSB后,您可以通过CSB HTTP-SDK来访问该服务。详情请参见SDK 参考

由于CSB上只定义了HSF入参的第一级参数名及类型,故对于自定义类的复杂结构参数,需传递对应类对象的完整JSON串给CSB。如HSF的第一个入参的Java定义如下:

public class Item {
  public String p1;
  public String p2;
}

CSB客户端调用CSB中发布的HSF服务时,示例代码如下:

String requestURL = "http://<CSB服务访问地址>:8086/CSB";
String apiName = "<HSF-REST服务名>";
String version = "<HSF-REST版本号>";
Map<String, String> params = new HashMap<String, String>();
params.put("inArg0", "{'p1': '<参数值1>','p2': '<参数值2>'}"); //此参数值应为HSF参数类对象的JSON串String result = HttpCaller.doPost(requestURL, apiName, version, params);