API 项目文章详情页面, 是否已收藏按钮是单独做一个接口,还是放在文章详情接口里面?

需求: api 项目, 文章详情页面.

  1. 如果用户登录了, 显示 收藏取消收藏 按钮进行收藏或取消收藏;
  2. 如果未登录, 则显示 收藏 按钮, 但是点击后会跳转到登录页面.

现在的问题是, 是否在 文章的详情接口中做登录判断和是否收藏的判断, 一并加到返回的 item 中, 如

class ArticlesController extends Controller
{
    public function show($article)
    {
        $article = Article::find($article);

        if (Auth()::gurad('api')->user()) {
            // 查表是否收藏 $is_liked = 0 或 1;
            $article->is_liked = $is_liked;
        }

        return response($article);
    }
}

或者再写一个接口单独用于判断文章是否被收藏 ?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Summer
最佳答案

建议分开,一是方便缓存,另一个也符合 Restful 把 API 当做资源的理念。

4年前 评论
beatles (楼主) 4年前
Summer (作者) 4年前
讨论数量: 9
ibucoin

详情加字段判断是否收藏,点击收藏操作的时候才需要判断是否登陆。

4年前 评论

加一张收藏表来关联用户和文章的关系

4年前 评论

不需要另外的接口。

4年前 评论
Epona

一般都是在详情里的

4年前 评论
Summer

建议分开,一是方便缓存,另一个也符合 Restful 把 API 当做资源的理念。

4年前 评论
beatles (楼主) 4年前
Summer (作者) 4年前

建议分开,处理的时候会很方便

4年前 评论
playmaker

建议分开 一个类别接口处理一个事情 文章跟收藏关联 详情接口返回相应是否收藏自定义字段的布尔

4年前 评论

不过分开也会增加一次http请求

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!