【发布时间】:2015-08-12 15:26:16
【问题描述】:
我正在实现新的 REST API 方法,该方法允许以批量\批量方式调用其他 REST API 方法。类似于 Facebook 的https://developers.facebook.com/docs/graph-api/making-multiple-requests
请求示例:
POST /batch
[
{"method":"GET", "relative_url":"/user/anton"},
{"method":"GET", "relative_url":"/user/vitaliy"}
{"method":"POST", "relative_url":"/user/dan", "body":{name:Dan}}
]
响应示例:
status 200
[
{"status":"200", "body":{name:"Dan"}},
{"status":"404"},
{"status":"201"}
]
简而言之,批处理方法应该在服务器端一个接一个地调用其他方法并将结果作为结果数组返回。
最简单的解决方案是在服务器端创建 .Net HttpClient 并逐个调用其他 WCF 方法。
问题是:如何在不通过 HttpClient 从外部调用 WCF 方法的情况下使用 WCF 基础设施来实现这一点?
原因 - 我不想进行网络往返旅行。 最完美的解决方案是使用 .Net Reflection,但这在 REST 抽象方面不是很好的解决方案
最接近的解决方案是创建包含 HttpRequestMessageProperty (URL, Headers, Method, Content-Type) 的 WCF 消息并将其发送到 WCF 基础架构处理(只是它是通过 HTTP 协议发送的)(对此不确定):
Message responseMessage = wcfInsfrastucture.Process(createWcfMessage(url, method,contentType,body));
目前我迷失在 WCF 示例和 WCF 服务器端通道架构中。 在Sending custom WCF Message to a service 中提出了最类似的问题,但我无法使其与现有配置的服务器端行为一起使用。
类似问题:
【问题讨论】: