65.9K
CodeProject 正在变化。 阅读更多。
Home

通过 BizTalk Server 2013 中的编排调用 Bing Maps REST API

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2014年2月20日

CPOL

4分钟阅读

viewsIcon

32513

downloadIcon

416

本文旨在解释如何在 BizTalk Server 2013 的编排中调用 Bing Maps REST API。

引言

本文快速解释了如何使用 BizTalk 连接到基于 REST 的服务。BizTalk 编排用于通过 REST API 与简单的 Bing Geocoding 服务进行通信。BizTalk 2013 引入了一个新的 REST 适配器 WCF-WebHttp,以及一个名为 '变量映射' 的新概念。 

进一步阅读的快速参考 

如果您想详细了解 REST 并希望在阅读本文之前进一步阅读,
请参考以下文章。  

通过 BizTalk 调用 Bing Geocoding REST API

步骤 0:申请 Bing Maps API 应用程序密钥

请参考此 URL [http://msdn.microsoft.com/en-us/library/ff428642.aspx]

以下是通过 BizTalk 调用 Bing Geocoding REST API 的步骤。

步骤 1:确定 Bing Geocoding URL

  1. 确定用于地理编码的 Bing URL 并生成 XML 文档。

    http://dev.virtualearth.net/REST/v1
    /Locations?query=One%20Dell%20Way,%20Round%20Rock,%20TX%2078682&
    key=Ag_GDRUeN3ghulGjTGIAW1ziMR8j-aQ5cu8SbKI0x4wsL8WykRPdSV4lOb9XeptU&o=xml

    注意 URL 中使用的各种参数。

    参数名称 解释
    查询 地理编码位置的地址
    Bing MAPS 应用程序 ID
    O XML 或 JSON 格式的输出值。
  2. 在浏览器中放置 URL 来生成 XML 文档。

  3. 在浏览器上右键单击,选择“查看源代码”,然后将其本地保存为 BingRESTResponse.xml。
  4. 从上一步保存的 XML 文件生成一个架构 (BingRESTResponse.xsd)。该架构将被导入到 BizTalk 解决方案中。

步骤 2 BizTalk 管理控制台配置

  1. 打开 BizTalk 管理控制台以创建一个新的发送端口。
  2. 选择默认的“BizTalk Application 1”或您选择的任何其他 BizTalk 应用程序。
  3. 观察发送端口的设置:“SP_BingMaps:REST”。请注意,当您将绑定文件导入 BizTalk 应用程序时,会自动创建发送端口。
    使用下载链接下载 Visual Studio 2012 BizTalk 项目,并查看 BindingFiles 文件夹中的 BizTalk 绑定文件。

  4. 接收管道设置为 XMLReceive,因为响应的架构已在步骤 1 中生成。

     

    填写所有详细信息,如屏幕截图所示。

  5. 单击“配置”按钮。请参阅下面的屏幕截图。

    HTTP 方法和 URL 映射 

    注意正在映射的每个 HTTP URL 的 NameMethodUrl 属性。

    <BtsHttpUrlMapping>
        <Operation Name="GetGeoCode" Method="GET" Url="?query={userAddressQuery}&key={BingMapsKey}&o=xml" />
    </BtsHttpUrlMapping>

    什么是变量映射?

    将参数与 BizTalk 编排中的实际值进行映射的技术称为变量映射。变量映射使用括号 {parameter} 完成。

  6. 单击“编辑…”按钮。注意,必须为变量映射创建一个 BizTalk 属性架构。请注意,可以在变量映射对话框中设置值后创建架构。单击“确定”并选择“消息”选项卡。

    下面的屏幕截图代表在变量映射对话框中指定的属性架构。

  7. 在出站消息选项卡上指定 GET,然后单击“确定”。

    单击“确定”几次,关闭所有对话框,为 Bing Geocode 创建一个新的发送端口。

    请注意,当您将绑定文件导入 BizTalk 应用程序时,会自动创建发送端口。

步骤 3:打开 BizTalk 解决方案

打开 BizTalk 解决方案‘DSHS.GeoCoding.sln’并注意以下几点。

  1. 编排中的第 3 个形状用于向 Bing Geocoding 服务发送 GET 请求。

  2. 第 3 个形状上的消息元素被映射为 BizTalk Message Context 变量,这是因为属性提升 (BingMapsRestParams.xsd)。输入消息中的元素映射如下表所示。

    请求消息变量 消息上下文变量
    ApplicationID BingMapsAPIKey
    QueryAddress UserAddressQuery

  3. 第 4 个形状是接收形状,用于返回 Bing Maps 服务调用的响应。此响应被映射到步骤 1 中创建的架构 (BingRESTResponse.xsd)。
  4. 解决方案中的 BizTalk 映射将 Bing Maps API 响应转换为使用者所需的适当 XML 格式。这是一个非常直接的过程。

步骤 4:在本地计算机上创建 BizTalk Drop 文件位置

  1. 创建 BizTalk Drop 位置
    BizTalk 输入文件夹 C:\BizTalkDropLocations\DSHS.GeoCode\In
    BizTalk 输出文件夹 C:\BizTalkDropLocations\DSHS.GeoCode\Out
    BizTalk 示例输入文件 C:\BizTalkDropLocations\DSHS.GeoCode
  2. 打开位于“SampleFiles”目录中的示例文件 DSHS_GeoCodingRequest_sample_1.xml。请注意,ApplicationID 必须正确生成,有关如何正确获取密钥,请参阅步骤 0。

  3. 修改 Query Address XML 标记并保存文件。
  4. 将绑定文件 (DSHS.GeoCoding.Bindings.xml) 导入 BizTalk 并正确部署解决方案。启动 BizTalk 应用程序。
  5. 将文件复制并粘贴到 BizTalk 输入文件夹“C:\BizTalkDropLocations\DSHS.GeoCode\In”
  6. 在 BizTalk 输出文件夹“C:\BizTalkDropLocations\DSHS.GeoCode\Out”中观察 GeoCode 值。请参阅下面的屏幕截图。

  7. 验证输出文件中的 Geocode 值是否正确。

结论 

在本文中,我们尝试通过 BizTalk 编排仅使用 HTTP GET 动词连接到基于 REST 的服务。将来,我将尝试连接到更复杂的基于 REST 的服务。

© . All rights reserved.