设计REST ful ODATA API,如何在结果集为空时执行操作?404或{}?

Bud*_*hiP 5 odata asp.net-web-api

我正在使用ASP.NET WebAPI构建符合ODATA的API?

有一个问题,当$ filter没有结果时它应该如何表现?

它应该返回一个空集合吗?或发送HTTP 404响应?

任何想法/推理?我偏向于返回一个空集合,但它会违反推荐的做法吗?

Mar*_*nes 5

鉴于您没有直接在特定的已知Request-Uri(例如/ resource/{uid})处理单个资源,并且您的集合也是已知的可寻址Request-Uri(例如/ resource),那么404将是不合适的.

如果我正在使用您的API,我会期待一个空集合.

  • 我同意答案,如果没有达到那里的逻辑:-).集合本身是在特定的已知Request URI处检索的资源.它碰巧是一个空集合的事实并不需要在HTTP状态代码中指出. (2认同)