BizTalk WCF RESTful服务的创建与GET方法的实现

在现代的软件开发中,RESTful服务因其简洁和易于理解的特点而广泛使用。BizTalk Server提供了强大的企业服务总线功能,但直接暴露WCF服务为RESTful服务并不是一件容易的事情。本文将介绍如何利用BizTalk Server创建RESTful服务,并实现GET方法的详细步骤。

在许多情况下,客户端需要触发服务而无需任何输入,RESTful API服务应该能够执行SQL存储过程,并以JSON格式返回响应。为了实现这一功能,需要创建WCF服务请求和响应的两个模式,创建一个表和存储过程来检索表中的详细信息,而无需传递参数。

解决方案

为了实现上述需求,可以按照以下步骤创建解决方案:

  1. 创建WCF服务请求和响应的两个模式。
  2. 创建一个表和存储过程,用于检索表中的数据,而无需传递参数。
  3. 创建存储过程模式,以便从创建的存储过程中获取数据。
  4. 创建映射,将存储过程的响应映射到WCF响应。
  5. 创建自定义接收管道,以提升字段。可以从以下URL获取:https://github.com/BizTalkComponents/HttpDisassembler
  6. 创建自定义发送管道,使用JSON编码将消息发送回服务。
  7. 创建一个业务流程,执行存储过程,并将存储过程的响应转换为WCF REST服务的响应。

创建解决方案的步骤

以下是创建解决方案的详细步骤:

  1. 创建一个模式,并提升字段作为属性提升。 Promote the tenantId field as a Property promotion.
  2. 添加SQL存储过程模式。通过添加生成项、消费适配器服务,并提供相应的SQL连接字符串,选择强类型存储过程,它将创建一个模式。
  3. 创建映射,将存储过程的响应映射到REST API响应。
  4. 创建业务流程,以检索存储过程,并将SP响应映射到WCF服务响应,然后发送回相同的请求-响应端口。
  5. 创建接收管道,提升提升的字段。可以从以下URL获取HTTP解构器管道组件: https://github.com/BizTalkComponents/HttpDisassembler
  6. 创建发送管道JSON编码器,将XML转换为JSON。

构建和部署解决方案

构建并部署解决方案到管理控制台。创建服务,按照以下步骤操作:

  1. 选择BizTalkWCF服务发布向导。
  2. 转到IIS HTTPRestServiceDemo目录浏览启用。
  3. 然后浏览服务。
  4. DocumentSpecName: , 例如:DemoSchema.JsonCarrier, DemoSchema, Version=1.0.0.0, Culture=neutral, PublicKeyToken=36c63864bb129606 在DocumentSpecName中提供上述详细信息,并选择适当的管道启用接收位置。

启用元数据

要启用元数据,请按照以下步骤操作:

  1. 转到C:\inetpub\wwwroot\HTTPRestServiceDemo Web.config
  2. <behavior name="ServiceBehaviorConfiguration"> <serviceDebug httpHelpPageEnabled="true" httpsHelpPageEnabled="false" includeExceptionDetailInFaults="false" /> <serviceMetadata httpGetEnabled="True" httpsGetEnabled="false" /> </behavior> 将httpGetEnabled设置为True,如上示例。

成功发布REST服务

默认情况下,暴露的服务启用了POST方法,现在需要将其更改为GET方法。按照以下步骤操作:

  1. 转到接收位置配置。
  2. 在HTTP方法下复制并粘贴以下代码: <BtsHttpUrlMapping> <Operation Method="GET" Url="/tenantId/{pid}" /> <Operation Method="GET" Url="/tenantId" /> </BtsHttpUrlMapping>
  3. 转到编辑(变量映射)。
  4. propertyNameSpace == https://Carrier.Schema.PropertySchema

成功将POST转换为GET方法

现在需要测试服务。可以使用Soap UI进行测试:

  1. 将资源URL从/HTTPRestServiceDemo/Service1.svc更改为/HTTPRestServiceDemo/Service1.svc/tenantId/34,因为提升了tenantId,所以消息将自动触发到BizTalk
  2. 将获得上述屏幕截图的响应。

感兴趣的要点

1. 如何将WCF服务暴露为Rest/Json服务。 2. 如何使用BizTalk Server使用GET端点。 3. 学习如何通过JSON将BizTalk模式暴露为WCF Rest服务。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485