【发布时间】:2011-02-05 19:40:27
【问题描述】:
我们正在推出一个新的 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 实用程序,以至于输入类型并不重要。
我知道我们对 API 进行 AJAX 调用的 JavaScript 客户端可能会喜欢 JSON 输入以使他们的生活更轻松。
【问题讨论】:
标签: rest