【发布时间】:2014-06-24 06:34:59
【问题描述】:
例如,与 SOAP 相比,http REST 的优势之一是 REST 利用机器语言/约定来传达很多含义(即 http POST 表示创建,http DELETE 表示删除......等)。 . 所以它消除了与所有协议(如肥皂)的免费相关的许多歧义和错误空间..
也就是说,我想知道是否需要将该概念扩展到 http 响应类型.. 特别是在涉及错误时.. 所以假设我收到了这个 api 调用,我想在其中获取可用驱动程序的数量我:
get api/drivers
如果找到一些驱动程序..那么通常你会返回带有驱动程序数量 + 详细信息等的 json。但是当找到 0 个驱动程序时会发生什么?您应该以与 0 相同的格式返回数据吗?还是应该使用 http 响应代码并返回 http 404 代码?
虽然使用 404 代码与约定优于配置的想法是一致的.. 并且让机器语言完成大部分解释/解释.. 我发现一些工程师抱怨 404 响应更像是抛出异常, 就好像出了什么问题,当用户附近有 0 个可用驱动程序是完全正常的。
更新:
在查找附近司机/餐馆等数量的情况下。答案可能很明显。但是当您创建一个做出假设的休息 api 时会发生什么......例如这个
get api/drivers/eta
这意味着获取最近的驱动程序的 eta。如果周围没有 个驱动程序会发生什么?在这里使用 404 或返回正常的 200 并在 json 正文中解释不存在驱动程序会更有意义吗?
【问题讨论】:
-
什么是“最近司机的 eta”?
-
最近司机的预计到达时间