HTTP穿透场景:即HTTP代理服务直接关联一个HTTP业务服务,由业务服务完成所代理的服务请求。在HTTP Transport中配置代理服务的协议、端口号及连接参数,在HTTP Endpoint中配置业务服务对应的协议,所在的主机地址、端口号及连接参数。通过SOAP UI模拟一个HTTP调用者,用SOAP消息格式作为HTTP请求的消息体。

本节讲述了HTTP协议穿透场景的创建过程,包括创建工程、创建HTTP协议相关的服务、并测试运行。通过本节你将了解到如下内容:

  1. 如何创建完整的HTTP协议穿透场景;
  2. 如何在Studio中测试运行开发的业务逻辑;
  3. 如何通过Server运行日志查看运行结果;

示例如附件所示:http.zip (opens new window)

# 创建工程

  1. 打开APIGateway Studio,在资源管理器中,点击右键,选择"创建 > ESB项目"菜单项,创建工程,如下图所示:
    image2018-10-10 17:56:4.png

  2. 在工程创建向导中,填写工程的基本信息,如工程名称等,这里我们创建一个名为"http"的工程,如下图所示:
    image2020-3-27 17:58:43.png

  3. 单击“下一步”,设置工程的引用库,这里使用缺省设置,如下图所示:
    image2018-12-13 15:40:39.png

  4. 单击“完成”,完成创建工程。创建工程后,资源管理器如下图所示:
    image2020-3-27 18:4:17.png

# 创建公共Module

  1. 在资源管理器中,选中创建好的项目,鼠标右键选择“创建 > 公共Module”,创建公共Module,如下图所示:
    image2020-3-30 11:18:40.png

  2. 在“公共Module”对话框中,填写Module名称等信息,如下图所示:
    image2020-3-30 11:24:47.png

    公共Module相关填写项的填写规则如下:

    参数 说明
    Module名称 Module的名称。由数字、字母、下划线(_)组成。
    显示名称 Module显示名称。由数字、字母、中文、点(.)、下划线(_)组成。
    版本 由数字和点(.)组成。
  3. 单击“完成”,公共Module创建完成,如下图所示:
    image2020-3-30 11:20:0.png

# 创建HTTP Transport

  1. 在创建的ESB项目的“Transport”上,右键选择“创建 > HTTP类型Transport”,如下图所示:
    image2020-3-30 11:20:39.png

  2. 在弹出的“创建HTTP类型Transport”界面,选择当前的工程、Module,并输入文件名及显示名称,如下图所示:
    image2020-3-30 11:24:47.png

    HTTP Transport基本配置项的填写规则如下:

    参数 说明
    选择工程 当前操作的工程。
    选择Module 当前操作的公共Module。
    文件名 文件名。由数字、字母、下划线(_)组成,必须以字母开头。
    显示名称 显示名称。由数字、字母、中文、点(.)、下划线(_)、中横线(-)组成。
    描述 对该HTTP Transport的简要描述。
  3. 单击“完成”,HTTP Transport创建完成,如下图所示:
    image2020-3-30 11:21:39.png

  4. 在资源管理器中,双击创建的HTTP Transport,打开HTTP Transport编辑器,修改相关参数。如下所示:
    image2020-6-24 16:10:45.png

    参数 说明
    ID HTTP Transport的唯一标识。HTTP Transport创建时自动生成。
    显示名称 HTTP Transport的显示名称。由数字、字母、中文、点(.)、下划线(_)、中横线(-)组成。当在Developer中设置为“使用显示名称”时,该Transport显示该名称。
    协议 选择http协议。
    Restful 选择是,表示启用restful接口方式
    端口 访问HTTP服务的端口。范围从1025到65535,可以选择int型的变量或常量。
  5. HTTP Transport配置完成后,单击工具栏中的图标保存。

# 创建HTTP Endpoint

  1. 在创建的ESB项目的“Endpoint”上,右键选择“创建 > HTTP类型Endpoint”,如下图所示:
    image2020-3-30 11:24:47.png

  2. 在弹出的“创建HTTP类型Endpoint”界面,选择当前的工程、Module,并输入文件名及显示名称,如下图所示:
    image2020-3-30 11:24:47.png

    HTTP Endpoint基本配置项的填写规则如下:

    参数 说明
    选择工程 当前操作的工程。
    选择Module 当前操作的公共Module。
    文件名 文件名。由数字、字母、下划线(_)组成,必须以字母开头。
    显示名称 显示名称。由数字、字母、中文、点(.)、下划线(_)、中横线(-)组成。
    描述 对该HTTP Endpoint的简要描述。
  3. 单击“完成”,HTTP Endpoint创建完成,如下图所示:
    image2020-3-30 11:25:35.png

  4. 在资源管理器中,双击创建的HTTP Endpoint,打开HTTPEndpoint编辑器,修改相关参数。如下所示:
    image2020-3-30 11:26:35.png

    参数 说明
    ID HTTP Endpoint创建时自动生成,不可修改。
    显示名称 HTTP Endpoint的显示名称,由数字、字母、中文、点(.)、下划线(_)、中横线(-)组成。当在Developer中设置为"使用显示名"时,该Endpoint显示该名称。
    主机地址 HTTP Endpoint连接的服务器地址,必填。
    端口 HTTP Endpoint连接的服务器端口号,范围从1025到65535。
    协议 服务器提供的HTTP协议类型,支持http和https。

# 创建业务Module

  1. 在资源管理器中,选中创建好的项目,鼠标右键选择“创建 > 业务Module”,创建业务Module,如下图所示:
    image2020-3-30 11:27:11.png

  2. 在“业务Module”对话框中,填写Module名称等信息,如下图所示:
    image2020-3-30 11:27:28.png

    业务Module相关填写项的填写规则如下:

    参数 说明
    Module名称 Module的名称。由数字、字母、下划线(_)组成。
    显示名称 Module显示名称。由数字、字母、中文、点(.)、下划线(_)组成。
    版本 由数字和点(.)组成。
  3. 单击“完成”,业务Module创建完成,如下图所示:
    image2020-3-30 11:27:47.png

# 创建HTTP业务服务

  1. 在新建的业务Module“com.primeton.esb.http.restaurant”的“业务服务”上,鼠标右键选择“创建 > HTTP业务服务”,创建HTTP业务服务,如下图所示:
    image2020-3-30 11:28:20.png

  2. 在打开的“创建HTTP业务服务”对话框中,输入类别信息,如下图所示。
    image2020-3-30 11:29:32.png

  3. 单击“完成”,在打开的“HTTP业务服务”的编辑界面中,选择Endpoint为之前创建的HTTP Endpoint,填写URI信息,输入服务提供者的URI地址,例如:/httpService/ParmGbkHelloWorld?id=1&username=a,单击保存,如下图所示:
    image2020-6-24 16:13:56.png

  4. 可根据需要,进行业务校验,点击选择,在弹框中选择指定的校验类,业务校验的作用是,根据需要对请求的结果进行校验,可判定为成功或失败,失败时自动重试
    image2020-6-24 16:15:52.png

# 创建HTTP代理服务

  1. 在资源管理器中,在新建的业务Module“com.primeton.esb.http.restaurant”的“代理服务”上,鼠标右键选择“创建 > HTTP代理服务”,创建HTTP代理服务,如下图所示:
    image2020-3-30 11:32:57.png

  2. 在打开的“创建HTTP代理服务”对话框中,输入类别信息,如下图所示:
    image2020-3-30 11:33:45.png

  3. 单击“完成”,在打开的“HTTP代理服务”的编辑界面中,选择Transport,输入URI地址,选择关联服务类型和服务名称,单击保存,如下图所示:
    image2020-3-30 11:35:50.png

# 部署运行

  1. 在资源管理器中,选中创建好的项目,鼠标右键单击“部署”,如下图所示:
    image2020-3-30 11:36:29.png

  2. 部署完成后,APIGateway Studio将公共Module和业务Module部署Studio内置的APIGateway ESBServer上,然后启动APIGateway ESBServer,如下图所示:
    image2020-3-30 11:37:13.png

  3. APIGateway ESBServer启动时,弹出启动服务器进度窗口,如下图所示:
    image2018-12-6 16:38:50.png

  4. 在APIGateway Studio控制台,看到“APIGateway ESBServer started successfully.”日志字样,表示APIGateway ESBServer启动成功,如下图所示:
    image2020-3-30 11:38:39.png

  5. 进入soap ui,创建rest project,访问ESB提供的HTTP服务,例如:http://192.168.16.85:9091/httptest,如下图所示:
    image2020-3-30 15:9:15.png

  6. 双击服务下的request 1,进入服务调用界面,如下图所示:
    image2020-3-30 15:10:58.png