我们正在推出一个新的REST API,我想要一些关于我们应该如何格式化输入参数的最佳实践的社区意见:
现在,我们的API非常以JSON为中心(只返回JSON)。是否希望/需要返回XML是另一个问题。
由于我们的API输出是以JSON为中心的,我们一直在走一条路径,我们的输入有点以JSON为中心,我一直在想,这可能对一些人来说很方便,但总的来说很奇怪。
例如,要获得一些产品细节,可以同时提取多个产品,我们目前有:
http://our.api.com/Product?id=["101404","7267261"]
我们是否可以将其简化为:
http://our.api.com/Product?id=101404,7267261
或者有JSON输入方便吗?更痛苦?
我们可能想要接受这两种风格,但是这种灵活性实际上会导致更多的混乱和头痛(可维护性、文档等)吗?
更复杂的情况是当我们想要提供更复杂的输入时。例如,如果我们想在搜索中允许多个过滤器:
http://our.api.com/Search?term=pumas&filters={"productType":["Clothing","Bags"],"color":["Black","Red"]}
我们不一定要把过滤器类型(例如productType和color)作为请求名称,就像这样:
http://our.api.com/Search?term=pumas&productType=["Clothing","Bags"]&color=["Black","Red"]
因为我们想把所有的过滤器输入组合在一起。
说到底,这真的重要吗?可能有太多的JSON util,输入类型并不那么重要。
我知道对API进行AJAX调用的JavaScript客户端可能会喜欢JSON输入,以使他们的工作更轻松。