지난 며칠 동안 REST 서비스를 호출하고 응답, 오류, 콜백 등을 추적하기 위해 노력하고 있습니다. 그러나 제한된 Angular에 대한 이해는 내가 그것을 이해할 수없는 것처럼 보인다. 다음은 지금까지 얻은 나의 문제와 이해입니다.
"project_id"만 반환하는 $ update() 서비스를 사용하고 있습니다. 이 서버는 전체 데이터를 다시 반환하지 않습니다. 다음은 몇 줄의 코드를 공유하는 것입니다.
//create Project factory
app.factory('Project', function ($resource) {
return $resource('/api/projects/:projectid',
{projectid:'@id'},
{update: {method:'PUT', isArray:false}}
);
});
다음은 프로젝트를 업데이트/생성하는 데 사용하는 지시문입니다.
//save project
scope.saveProject = function (project) {
//update modified by field
project.modifiedby = scope.user._id;
//change to view mode
scope.projectView = 1;
//call server to save the data
if (project._id == undefined || project._id == "") {
//Call server to create new and update projectID
project._id = project.$save()._id;
}
else {
//Call server to update the project data
project.$update({ projectid: project._id });
}
};
다음은 save() 및 update()에 대한 서비스 응답입니다.
{"_id":"52223481e4b0c4d1a050c25e"}
문제점은 다음과 같습니다. "project"객체 값은 project_id 만 갖는 서버가 반환 한 새로운 응답으로 대체되고 다른 필드는 대체됩니다.
$ resource에 대한 자세한 설명서를 살펴 보았지만 이해할 수는 없습니다. 오류, 응답, 콜백을 감지하는 코드를 작성하려면 여기에서 지침을 얻는 것이 좋습니다. 당신은 하나 원의 객체를 대체 할 수
나는 이전에 언급했듯이 효과가 없을 것이라고 생각합니다. 서버가 완전한 프로젝트 객체를 반환하지 않습니다. 그 서버 대신에 "project_id"만 반환합니다 – joy
저는이 접근법을 시도했지만 작동하지 않았습니다 ..... 다른 접근법을 공유 할 수 있다면 좋을 것입니다. 나는 정말로 여기에서 붙어있다. – joy
REST 표준을 따르는 경우 서버는 생성되거나 업데이트 된 객체로 응답해야합니다. 이것은 서버가 데이터를 정규화 할 수 있기 때문입니다. 케이싱 또는 포맷팅을 조정하면 응답은 정규화 된 데이터를 반영합니다. 서버가 반환하지 않는 한 사용자 입력이 유효하다고 안전하게 가정 할 수 없습니다. 따라서 본질적으로 서버 측을 제어 할 수있는 경우 업데이트 된 객체를 적절한 HTTP 상태 코드를 사용하여 응답 본문 (json)으로 반환하는 것이 좋습니다. – jvandemo