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

C# wcf服务(REST、SOAP或WEB API),它接受任何结构中的任何数据,c#,.net,wcf,azure,asp.net-web-api,C#,.net,Wcf,Azure,Asp.net Web Api,我正在尝试构建一个服务/API。在我的场景中,将有许多设备监控运行状况。例如,心跳监视器将监测心跳并发送心跳数据。脉冲率监视器将监视脉冲发送数据,类似地,您可以想象许多设备以自己的格式向我的服务发送数据。我尝试构建的服务/API应该能够接受任何格式的数据,并将其存储在azure表或blob存储中。任何关于如何开始这种设计的建议都会很有帮助。我也不确定asp.net web api或WCF是否是更好的选择 我提到的服务中也没有业务逻辑。从服务的角度来看,我不必知道数据的结构。我所要做的就是保存它,

我正在尝试构建一个服务/API。在我的场景中,将有许多设备监控运行状况。例如,心跳监视器将监测心跳并发送心跳数据。脉冲率监视器将监视脉冲发送数据,类似地,您可以想象许多设备以自己的格式向我的服务发送数据。我尝试构建的服务/API应该能够接受任何格式的数据,并将其存储在azure表或blob存储中。任何关于如何开始这种设计的建议都会很有帮助。我也不确定asp.net web api或WCF是否是更好的选择

我提到的服务中也没有业务逻辑。从服务的角度来看,我不必知道数据的结构。我所要做的就是保存它,并在需要时检索它。考虑到您(最终)将不得不知道这些数据是什么,我建议您在遇到它们时定义它们,然后处理这些数据


现在付款还是以后付款。

一些需要考虑的事情

您仍然需要能够识别哪些数据是哪些数据,所以您至少可以使用一个带有Id或名称字段的结构,然后是您提到的字符串数据,它将包含任何格式数据的其余部分

因此,您要么需要提交者理解该格式并将其与Id或Name字段一起发送,要么需要设置多个方法,以便用户在向服务提交数据时调用,如:

.addHeartBeat()
.addPulseRate()

等等。。。并让该方法将Id或名称添加到数据中。然后,您需要一种相应的方法来请求返回该数据——使用相同的结构(用户需要知道Id,或者调用特定的方法)。您还需要考虑请求者可能使用的其他标准,如日期范围、特定病人等。然后,所有这些可能的筛选字段都需要与blob数据分离,以便高效地查询它。

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

致以最良好的祝愿


徐明。

谢谢凯文。但我忘了补充一点,我提到的服务中没有业务逻辑。从服务的角度来看,我不必知道数据的结构。我所要做的就是保存它,并在需要时检索它。再也没有了,只需接受一个有限长的字符串/ascii/hexa,并按照我的想法存储它。我将公开一份带有Id、姓名等的基本合同。。基本上是用来区分和识别消息的字段。更多的是一个过滤器。正文的其余部分将只是字符串。它意味着共享访问签名,您可以参考以获取详细信息。