我有以下API:
api/guests/
api/guests/{id}/
api/guests/{id}/bookings
假设,我想预订不存在的客人(意思是,传递错误的身份证)
我应该返回404
错误代码还是只返回一个空数组?
第一个选项似乎更安静,但是这种操作通常需要2个DB调用(第1个 - 用于通过guest_id
检索预订,第2个 - 检查是否存在来宾)
那么,我应该选择哪个选项?
答案 0 :(得分:2)
您如何区分这两种情况:
答案 1 :(得分:0)
这取决于您将选择的语义。
IMHO返回404表示特定资源不存在 - 这与"存在但不存在子资源"。
另一件事是你如何定义不存在 - 你的意思是有效但不存在的id或格式错误(字符串而不是数字等)?
为了简单起见,我总是喜欢返回一个空的项集合,通常在模型绑定期间验证格式错误的id,所以我确信可以获取正确的数据。