RestKit을 사용하여 핵심 데이터 관리 객체를 POST 할 때 RestKit은 기존 객체를 업데이트하지 않지만 대신 새 객체를 만듭니다.RestKit 응답이 배열로 묶여있을 때 POST 된 관리 객체가 중복됩니다.
반환 된 JSON은 항상 새로 생성 된 객체를 포함하지만 복수형 키 배열로 래핑합니다. 나는 이것을 하나의 객체로 변경하면 업데이트가 예상대로 작동한다는 것을 알게되었습니다. 그러나 모든 응답을 일관되게 복수 형식으로 배열되도록 응답을 유지하고 싶습니다.
배열로 포장 된 서버에서 반환 된 경우에도 RestKit에서 레코드를 업데이트 할 수있는 방법이 있습니까?
가능한 해결책 : identificationAttribute
?
본인의 경우 은 remoteID
입니다. 이것은 레코드의 기본 고유 키입니다. 객체가 아직 서버에 없기 때문에 POST 전에 0이됩니다. insertionID
이라는 두 번째 identificationAttribute를 추가하고 POST 전에 설정 한 다음 응답으로 반환하면 RK가 로컬 저장소의 기존 엔터티를 찾을 수 있습니다. 아아, 작동하지 않았다.
그러나 서버에서 다음 자동 증분 값으로 POST 전에 remoteID
을 설정하는 것이 효과가있었습니다! remoteID
으로 작동하지만 두 번째로 작동하지 않는다고 설명 할 수있는 것은 insertionID
입니까?
예 요청
{
"user": {
"email": "[email protected]"
}
}
응답 나는 모든 응답이 복수 형태로 지속적으로이되도록 응답 배열을 유지하고 싶은
{
"users": [{
"email": "[email protected]"
}]
}
배열을 버릴 수도 있지만 추가 응답 설명자를 만들어야합니다. 여러 개체를 게시하려면 어떻게해야합니까? 확실히 배열 응답이 필요합니다. 응답이 배열 일 때 RK가 식별 속성을 사용하여 코어 데이터 저장소에서 기존 엔티티를 가져 오는 것이 매우 이상하다는 것을 알게되었습니다. 배열을 게시하면 변경 될까요? 나는 그것을 처음으로 가지고 있었지만 그것도 효과가 없었다. – Rengers
어레이 응답 내용에 대해 어레이 검사를 게시하는 경우 기억이 안납니다. 여러 객체를 게시 한 경우 일반적으로 전체 객체가 아닌 상태/ID 응답 목록을 수신 할 것으로 기대됩니다. RestKit은 '규범'을 충족 시키려고하고 있으며, 그것이하지 않는 일을 찾을 수 있음을 기억하십시오. 그것을 포크하고 변화를 제안 할 수 있습니다 (github에서). – Wain
안녕하세요, Wain, 나는'identityAttribute'에 관한 제 질문에 새로운 정보를 추가했습니다. 그 예상치 못한 행동에 대해 밝힐 수 있을까요? – Rengers