历史:我使用的Web服务基于最新的MISMO dtd(针对相关属性),另一半是针对该属性运行的报告。所有这些都被捆绑到一个大的xml和POSTED到端点,响应很好,你猜对了.... xml,还有很多。
报告的方面是问题。假设有100个不同的报告可以运行,您可以要求提供单个报告或任何报告组合。现在所有这些标志都是一个节点的属性,你可以通过将报告属性设置为Y(es)或N(o)来打开或关闭它们(例如<someNode _fooReport="Y" _barReport="Y" .... />
问题:我有兴趣听取您关于如何设计更干净的Web API的意见,这将简化为初学者选择报告的方法。我正在使用c#4.0。
此致 斯蒂芬
答案 0 :(得分:3)
要设计干净的API,您需要放弃按特定名称运行多个报告的概念。
您应该专注于按关键字对报告进行标记和分组。如果您的最终用户需要报告有关某些关键字的所有信息,请允许该用户传入关键字。
您最终会在报告上编写搜索API。这可以像关键字列表一样简单到像谷歌这样大的东西,具体取决于您希望为客户提供的选择数量。
从URL api设计视图中我会考虑使用类似
的内容 url/reports/[id OR name]
和
url/reports/?search=[query]
这将产生更清晰的Web API