wcf服务(REST或SOAP或WEB API)接受任何结构中的任何数据

时间:2012-06-18 16:28:42

标签: c# .net wcf azure asp.net-web-api

我正在尝试构建服务/ API。在我的场景中,会有很多设备可以监控健康状况。例如,心跳监视器将监视心跳发送心跳数据。脉冲率监视器将监视脉冲发送数据,同样地,您可以控制许多以自己的格式向我的服务发送数据的设备。我正在尝试构建的服务/ API应该能够接受任何格式的数据并将其存储在azure表或blob存储中。有关如何开始使用此设计的任何指示都会有所帮助。我也不确定asp.net web api或WCF是否是更好的选择。

此外,我提到的服务中没有业务逻辑。从服务的角度来看,我不必知道数据的结构。我所要做的就是坚持下去并在被要求时检索它。没有更多

3 个答案:

答案 0 :(得分:2)

考虑到您(最终)必须知道该数据是什么,我建议您在遇到它们时定义每个数据,然后处理该数据。

立即付款或稍后付款。

答案 1 :(得分:1)

要考虑的一些事情......

您仍然需要能够识别哪些数据是哪个,因此您可以使用的最小值是具有Id或Name字段的结构,然后是您提到的字符串数据,其中包含其余的数据任何格式数据。

因此,您需要提交者了解该格式并使用Id或Name字段发送,或者您需要设置多种方法供用户在向服务提交数据时调用,如:

.addHeartBeat()
.addPulseRate()

等...并且让该方法将Id或Name添加到您的数据中。然后,您需要一种相应的方式来请求数据 - 使用相同的结构(用户需要知道Id,或调用特定方法)。您还需要考虑请求者可能使用的其他标准,如日期范围,特定患者等。然后,所有这些可能的过滤器字段需要与blob数据分开才能有效地查询它。

答案 2 :(得分:0)

看起来你想构建一个文件上传加载服务,它接受任何类型的文件并将其存储在blob中(字面意思是你可以将你要监视的所有内容视为文件)。首先,考虑生成SAS并允许客户端直接将文件上传到blob存储。这可以节省一些精力,并提供更好的性能。如果这不是一个选项,那么使用ASP.NET Web API。虽然WCF也支持REST,但从长远来看,建议使用ASP.NET Web API来构建新的RESTful服务。 WCF可用于构建SOAP服务,但SOAP要求客户端发送SOAP信封而不是任意数据。

最诚挚的问候,

徐明。