通过Web服务API创建Facade的推荐方法

时间:2011-05-10 17:02:12

标签: c# web-services design-patterns architecture

历史:我使用的Web服务基于最新的MISMO dtd(针对相关属性),另一半是针对该属性运行的报告。所有这些都被捆绑到一个大的xml和POSTED到端点,响应很好,你猜对了.... xml,还有很多。

报告的方面是问题。假设有100个不同的报告可以运行,您可以要求提供单个报告或任何报告组合。现在所有这些标志都是一个节点的属性,你可以通过将报告属性设置为Y(es)或N(o)来打开或关闭它们(例如<someNode _fooReport="Y" _barReport="Y" .... />

问题:我有兴趣听取您关于如何设计更干净的Web API的意见,这将简化为初学者选择报告的方法。我正在使用c#4.0。

此致 斯蒂芬

1 个答案:

答案 0 :(得分:3)

要设计干净的API,您需要放弃按特定名称运行多个报告的概念。

您应该专注于按关键字对报告进行标记和分组。如果您的最终用户需要报告有关某些关键字的所有信息,请允许该用户传入关键字。

您最终会在报告上编写搜索API。这可以像关键字列表一样简单到像谷歌这样大的东西,具体取决于您希望为客户提供的选择数量。

从URL api设计视图中我会考虑使用类似

的内容

url/reports/[id OR name]

url/reports/?search=[query]

这将产生更清晰的Web API