0

我想知道是否有人可以给我一些指导。

我正在关注有关使用 Laravel 构建 API 的教程,该教程可在此处找到

https://www.sitepoint.com/how-to-build-an-api-only-jwt-powered-laravel-app/

这运作良好,但我遇到的问题是错误响应和最佳实践。

如果数据库中有记录,那么一个简单的

return $records;

效果很好,但是找不到记录怎么办?

在教程中,当没有找到记录时,它会抛出一个 http 异常

throw new NotFoundHttpException; 

但这会返回一个 404,我不确定这与数据库中没有记录是否相关,404 更像是一个页面未找到之类的东西,不是吗?

所以,我想我要问的是,返回 API 中没有记录的最佳做法是什么?

任何帮助将不胜感激。

干杯

4

1 回答 1

1

您应该根据请求的资源类型来处理它。

单一资源

当请求的资源是单个记录时,例如/api/v1/posts/1,并且没有具有该 id 的记录(示例中为 1),您应该返回一个404 Not Found. 请求的位置不存在。

资源收集

如果请求的资源是记录集合,例如“所有帖子”( /api/v1/posts),并且该类型的资源没有记录,则返回200 OK正文中的空集合。请求的位置确实存在,因此在这里用 404 响应是不合适的。

例如,对没有记录的集合的请求的 JSON 响应正文可能如下所示:

{
    "posts": []
}
于 2016-08-20T09:53:31.700 回答