如何正确编写API-s

时间:2016-06-03 03:56:19

标签: laravel

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

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是否安全,或者您如何处理此案例?

1 个答案:

答案 0 :(得分:0)

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