我们正在着手开发一项新的中间层服务,该服务将允许内部客户端系统在一些底层数据存储中创建、更新和查询记录。该服务将聚合多达 3 个独立的底层数据存储。出于这个问题的目的,假设:
数据存储#1:专有 XML 数据库。
数据存储#2:现成的关系数据库。
数据存储#3:平面文件存储(以二进制形式存储的文件)。
客户端将不知道(也不关心)他们正在查询/更新哪个数据存储。新服务将做出该决定。我的问题是:我的 API 应该公开 XML 还是对象?例如,新的 API 将有一个 add 方法。假设我们的系统是一个车载存储系统,那么API的add方法可能是这样的:
AddNewCar( CarObject car )
或者,它可能看起来像这样:
AddNewCar( string carXml )
现在,即使第二个方法在入口处被弱类型化,XML 将立即根据模式进行验证,至少是。
新服务将用 C# 编写(尚未确定哪个版本,但可能是 WCF 的 3/3.5)。API 的客户端可以是 C#/VBA/VB.Net/C++/Java)。
任何更多细节请告诉我。谢谢
更新:请注意,API 还将通过消息总线发布 XML。例如,当添加新车时,将发布汽车 XML,以便任何对新车感兴趣的人都会收到通知。