2016-06-03 2 views
0

나는 점수라는 테이블이 있는데 여기에는 team_id와 score_value의 두 필드가 있습니다. 점수/teams/{team_id} (POST)와 같은 HTTP 호출을 사용하여이 테이블에 레코드를 삽입해야합니다.API-s를 올바르게 작성하는 방법

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에 저장하는 것이 안전한지 또는이 사례를 어떻게 처리할까요?

답변

0

우선, 두 시나리오 모두에서 사용자가 점수를 업데이트 할 권한이 있는지 확인하십시오. 그렇지 않으면 누구나 귀하의 데이터가 엉망이 될 수 있습니다.
개인적으로 알 수없는 위치로 POST 할 때 두 번째 시나리오를 선호합니다 (앱이 인증 데이터를 기반으로 어떤 team_id를 사용할 지 결정합니다). 첫 번째 시나리오에서는 PUT 대신 PUT을 사용합니다. PUT 대 POST에 대한 자세한 내용은 여기를 참조하십시오. http://restcookbook.com/HTTP%20Methods/put-vs-post/
두 번째 옵션이 더 유연하고 보안 점검이 덜 필요하다고 생각합니다.받은 team_id를 비교할 필요가 없습니다. 로그인 한 사용자 팀 ID에 대해

관련 문제