【问题标题】:Laravel 5.2 Dingo API returning no recordsLaravel 5.2 Dingo API 不返回任何记录
【发布时间】:2016-08-20 02:33:57
【问题描述】:

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

我正在关注有关使用 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 中没有记录的最佳做法是什么?

任何帮助将不胜感激。

干杯

【问题讨论】:

    标签: php laravel dingo-api


    【解决方案1】:

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

    单一资源

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

    资源收集

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

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

    {
        "posts": []
    }
    

    【讨论】:

    • 哦,这很有意义。谢谢你的回复:)
    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 2016-07-02
    • 2016-09-28
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多