프로젝트 ID가 사용자 모델의 일부가 아니면 프로젝트 모델의 일부인 사용자 ID 배열을 의미합니다 ... 맞습니까? (즉, 백본
PUT /projects/(projectid)/users/(userid)
그러나, 어쩌면 당신은 그들이 서비스의 소비자가 필요로하지 않는 경우 해당 URL을 지원할 필요가 없습니다 그래서 나는이 프로젝트에 사용자를 추가하는 것이 적절하다고 생각);
PUT /projects/(projectid)
을하고 아약스 포스트 호출은 "이 프로젝트를 업데이트"요청의 일부로 사용자의 목록이 포함됩니다 : 어쩌면 당신은 단지 하나의 엔드 포인트가 프로젝트를 업데이트 할.
UI에 따라 백본의 URL 형식을 사용할 수도 있습니다. URL의 첫 번째 양식은 "사용자 y를 프로젝트 y에 추가"(예 : 관리자가 "현재 사용자를 현재 프로젝트에 추가"를 클릭 한 경우 등)와 같은 요청에만 유용합니다.
URL의 두 번째 형식은 사용자 목록, 프로젝트 이름 등을 포함하여 프로젝트 도매업을 업데이트하는 데 사용할 수있는 형식입니다. 그것은 "프로젝트 편집"보기입니다.
var ProjectModel = Backbone.Model.extend({
defaults: {
"project_name": "",
"users: [0]
},
urlRoot: "/myrestapi/projects",
url: function() {
return this.urlRoot + "/" + this.cid;
}
});
백본이 발생하게이 모델에 요청을 저장 URL에 (POST를 PUT?) : 프로젝트의 모델 상태를 나타내는 포스트 데이터와
/myrestapi/projects/(cid)
을 :
{ "project_name": "foo", "users": [15, 18, 42] }
다음은 서버의 데이터 저장소에 대한 업데이트를 트리거하는 REST 서비스입니다.
좋아요, 제가 생각하기에 이것은 누락 된 부분입니다. 프로젝트/사용자 간의 연관 자체는 POST 요청입니다. 나는 codeigniter에서 REST 핸들러를 수정해야 할 것이다. 그러나 이것은'POST/projects' 호출을 위해 기본적으로 나에게 많은 문제를 해결할 것이다. 나는 프로젝트 컨트롤러에서'index_post()'함수를 가지고있다. 거기에는'user_post()'핸들러도 있습니다. 이것은 디자인 관점에서 많은 의미를 가지며, 원한다면'project_post()'핸들러를 가진 사용자 컨트롤러를 가질 수도 있습니다. – Rob