2016-06-03 3 views
0

점수라는 테이블이 있는데이 테이블에는 team_id와 score_value라는 두 개의 필드가 있습니다.점수에 맞는 API를 디자인하는 방법은 무엇입니까?

첫 번째 옵션 : POST : 점수/팀/{team_id}

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

두 번째 옵션 : POST : 점수/팀 내가 할 수있는 무엇이이 사건에 대한 엔드 포인트를 작성하는 최선의 방법입니다

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을 통과 할 필요가 없습니다 비서 ond 옵션? 다른 사용자를 대신하여 레코드를 추가하는 관리자가있는 경우에는이 경우 url에 매개 변수로 team_id를 전달하기 만하면됩니다.

또는 두 종점이 모두있는 경우 관리자가 추가 또는 일반 사용자인지 여부에 따라 각자를 사용할 수 있습니다. 이유가 무엇인가에 따라 DRY와 같이 표시되지 않습니다.

선택할 수있는 옵션이 다소 혼란 스럽습니다.

+1

[API-s를 올바르게 작성하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/37605655/how-to-properly-write-api-s) – huuuk

+0

Laravel 또는 Slim과 같은 프레임 워크를 사용하고 있습니까? 기타? – brianlmerritt

+0

@brianlmerritt이게 정말 중요한가요? CZ 내가 어떤 종류의 프레임 워크를 사용하는 모든 종류의 프레임 워크, 프로그래밍 언어와 동일해야합니다, 모든 프로그래밍 프레임 워크에 대해 동일해야합니다. –

답변

0

두 번째 옵션이 가장 좋습니다. POST 메서드를 사용하는 경우 GET/PUT/PATCH/DELETE를 사용하지 않는 한 URL에 인수를 삽입하면 안된다는 점을 명심하십시오.

또한 API를 작성하는 경우 Slim Framework을 제안합니다.

+0

관리자가 대신 레코드를 추가해야한다면 어떻게해야합니까? 다른 사용자의 이 옵션은 사용자의 팀 ID가 로그인 한 사용자로부터 취해지기 때문에 작동하지 않습니다.이 경우 관리자에게는 팀 ID가 없기 때문에 팀 ID를 인수로 전달해야하는 곳에서 이와 같은 다른 함수를 작성해야합니다 이 사건에 대해 뭐라하니? –

+0

양식 또는 json 또는 team_id를 얻을 수있는 다른 옵션으로 처리해야하며 URL에 넣지 마십시오. – Vashtamyty

+0

양식이 무엇을 의미합니까? 이걸로 테이블에 레코드를 삽입하기 위해 실제로 같은 일을하는 두 가지 방법이 있어야합니다. 이 모양이 너를 위해 말라? –

관련 문제