【问题标题】:How to properly write API-s如何正确编写 API-s
【发布时间】:2016-06-03 19:30:57
【问题描述】:

我有一个名为 scores 的表,它有两个字段:team_id 和 score_value。 我需要使用像 score/teams/{team_id} (POST) 这样的 HTTP 调用将记录插入到此表中。

public function($team_id,$score){
 $scores = new Scores();
 $scores->team_id = $team_id;
 $scores->score_value = $score;
 $scores->save();
}

我可以对分数/团队 (POST) 做同样的事情,所以我不需要将 team_id 作为参数传递,因为我可以在插入函数中获取该字段,如下所示:

public function($score){
 $scores = new Scores();
 $scores->team_id = Auth->user->team_id; (logged in user team id)
 $scores->score_value = $score;
 $scores->save();
}

这两个选项中的哪一个是最好的选择,当然更灵活?

如果我选择第二个选项,我应该总是从前端传递 team_id,这样安全吗?我的意思是将用户的 team_id 存储到 localStorage 中是否安全,或者您如何处理这种情况?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    首先,我希望在这两种情况下,用户都有权更新分数,否则任何人都可以弄乱您的数据。
    就个人而言,我更喜欢第二种情况,因为您 POST 到未知位置(应用程序根据身份验证数据决定使用哪个 team_id)。 在第一种情况下,我会使用 PUT,您可以在此处阅读有关 PUT 与 POST 的更多信息http://restcookbook.com/HTTP%20Methods/put-vs-post/
    我还认为第二个选项更灵活并且需要更少的安全检查,因为您不必将收到的 team_id 与登录的用户团队 id 进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 2019-04-06
      • 2021-01-25
      • 2013-02-06
      相关资源
      最近更新 更多