【问题标题】:Publish/expose RESTful API using WCF-WebHttp使用 WCF-WebHttp 发布/公开 RESTful API
【发布时间】:2020-06-30 10:06:33
【问题描述】:

我需要从 BizTalk 2013 r2 公开/发布 RESTful API 服务。

我在 IIS 中发布了一项服务,当我浏览它时它正在工作,但我无法从 SOAP UI 调用 API。我试过使用这个链接: Exploring REST Capabilities of BizTalk Server 2013 (Part 1: Exposing REST Endpoints)

我的 API URL 有 3 个强制参数(前 3 个)和 2 个可选参数(最后 2 个)。 我使用了 btsvariable 映射。

必需的示例 URL 是

/rest/testlink/write/data/apiservice/V01/rs/call/search/{name}/{rows}/{starts}?year=<year>&AdditionalName=<additional>

例子:

https://localhost/rest/testlink/write/data/apiservice/V01/rs/call/search/brown/99/true?year=2007,2008,2009&AdditionalName=true

在 WCF Web HTTP 接收位置 BizTalk 使用 /serviceapi/Service1.svc 但是这个 service1.svc 不在客户端预期的示例 URL 中。

我已经突出显示了上面的变量,还有一个查询?=。那么,如何在 WCF-WebHttp 中进行设置并公开其余 API?

如果 BizTalk 使用以下 URL,调用此服务的客户端如何知道参数?这个 URL 在我浏览时有效,但我相信这是 WSDL 链接。

如何发布带有查询参数的 API?

https://localhost/serviceapi/Service1.svc

【问题讨论】:

    标签: api adapter biztalk wcf-web-api biztalk-2013r2


    【解决方案1】:

    使用 Web HTTP 适配器公开时的 BizTalk 接收位置将公开为 .svc。因为它使用 WCF 框架来启用 REST 功能。 url 不是真正意义上的 REST url。

    您需要的是 url 掩码,使其看起来像其余的 url。这是 Azure API 管理的完美用例,因为它掩盖了底层 url。

    它具有 servce1.svc 的事实应该无关紧要,因为客户端仍然能够在您暴露的端点上执行 GET 请求

    【讨论】:

    • 在 IIS 中也有一些技巧,允许您进行 URL 重写以掩盖它以 Service1.svc 结尾
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多