2016-02-27 63 views
2

使用BizTalk我正在寻找一种解决方案来公开接受oData请求的服务,如IE浏览器,然后返回oData json/xml?例如通过BizTalk服务暴露oData

Request: 
http://localhost/odata/Employees 
Response: 
oData or employees records in json or xml. 

它应该是基于相同EF模型的ASP WebServices的复制品,它使用控制器返回oData。

任何简单的方法来做到这一点?

+0

是否有一个原因,你想在BizTalk主持这个,而不是一个普通的WCF或ASP.NET服务? –

+0

是的丹,我们想要通过BizTalk路由所有流量,而不是自己创建服务。 – BizTalker

+0

嗯,是的,你只需在BizTalk Server中使用REST和JSON支持。你有尝试过什么吗?您是否遇到特定的问题/问题? –

回答

1

所以我不知道这是一个完整的答案,这可能不是你想听到的,但这里是我的想法:

  1. 它会是不平凡的做了充分的OData只使用BizTalk的REST和WCF工具来实现。这可能是可能的。
  2. 最好的办法是编写一些自定义适配器/管道/业务流程,以包装Microsoft.Services.Data的功能 - 换句话说,托管WCF服务,就好像它在BizTalk中运行一样(与其他WCF适配器非常相似)。再说一次,这不是一项简单的任务,我不确定是否有现成的适配器(有专有的查询oData服务,但不处理查询)。
  3. 或者,如果您只想要oData功能的子集,只需使用JSON功能在WebHTTP服务中实现该功能即可。这可能更可行,假设您的用例相当有限。

简单地写一个实现Microsoft.Services.Data的WCF服务,并根据需要对BAM API和/或BRE API进行适当的调用可能会更直接。如果您已经将某些消息发布到BizTalk端点,则基本上将沿着#2(自定义适配器)的路径走。如果您确实需要BizTalk将提供的跟踪/节流/可靠性,那么这值得一试。