Publish/expose RESTful API 使用 WCF-WebHttp
Publish/expose RESTful API using WCF-WebHttp
我需要 expose/publish 来自 BizTalk 2013 r2 的 RESTful API 服务。
我已经在 IIS 中发布了一项服务,当我浏览它时它正在运行,但我无法从 SOAP UI 调用 API。我试过使用这个 link:
Exploring REST Capabilities of BizTalk Server 2013 (Part 1: Exposing REST Endpoints)
我的 API URL 有 3 个强制参数(前 3 个)和 2 个可选参数(后 2 个)。
我使用了 bts 变量映射。
所需样本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
BizTalk 使用的 WCF Web HTTP 接收位置 /serviceapi/Service1.svc
但是这个service1.svc在客户预期的样本URL中没有任何地方。
我在上面突出显示了变量,还有一个查询?
和=
。那么,我如何在 WCF-WebHttp 中设置它并公开其余部分 API?
如果 BizTalk 使用以下 URL,调用此服务的客户端如何知道参数?这 URL 在我浏览时有效,但我相信这是 WSDL link。
如何发布带有查询参数的 API?
https://localhost/serviceapi/Service1.svc
当使用 Web HTTP 适配器公开时,BizTalk 接收位置公开为 .svc。因为它使用 WCF 框架来启用 REST 功能。 url 不是真正意义上的 REST url。
您需要的是 url 掩码,使其看起来像其他 url。这是 Azure API 管理的完美用例,因为它掩盖了底层 url.
它具有 servce1.svc 的事实应该无关紧要,因为客户端仍然可以在您公开的端点上执行 GET 请求
我需要 expose/publish 来自 BizTalk 2013 r2 的 RESTful API 服务。
我已经在 IIS 中发布了一项服务,当我浏览它时它正在运行,但我无法从 SOAP UI 调用 API。我试过使用这个 link: Exploring REST Capabilities of BizTalk Server 2013 (Part 1: Exposing REST Endpoints)
我的 API URL 有 3 个强制参数(前 3 个)和 2 个可选参数(后 2 个)。 我使用了 bts 变量映射。
所需样本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
BizTalk 使用的 WCF Web HTTP 接收位置 /serviceapi/Service1.svc
但是这个service1.svc在客户预期的样本URL中没有任何地方。
我在上面突出显示了变量,还有一个查询?
和=
。那么,我如何在 WCF-WebHttp 中设置它并公开其余部分 API?
如果 BizTalk 使用以下 URL,调用此服务的客户端如何知道参数?这 URL 在我浏览时有效,但我相信这是 WSDL link。
如何发布带有查询参数的 API?
https://localhost/serviceapi/Service1.svc
当使用 Web HTTP 适配器公开时,BizTalk 接收位置公开为 .svc。因为它使用 WCF 框架来启用 REST 功能。 url 不是真正意义上的 REST url。
您需要的是 url 掩码,使其看起来像其他 url。这是 Azure API 管理的完美用例,因为它掩盖了底层 url.
它具有 servce1.svc 的事实应该无关紧要,因为客户端仍然可以在您公开的端点上执行 GET 请求