2012-09-26 3 views
0

Tastypie API에 액세스하려면 RestKit을 사용하고 있습니다. 나는 양쪽 끝을 제어 할 수있다.RestKit 및 Tastypie 통합

나는`/ API/V1/조직/1과 같이 /에서 성공적으로 "벌거 벗은"JSON 리소스를로드 할 RestKit 매핑을 구성한 :

{ 
"id": "1", 
"name": "ACME Space" 
} 

을하지만 어떻게 내가에서 리소스를로드 할 RestKit를 구성 할 /api/v1/organizations/은 다음과 같습니다이 :

{ 
"meta": 
    { 
     "limit": 20, 
     "next": null, 
     "offset": 0, 
     "previous": null, 
     "total_count": 2 
    }, 
"objects": 
    [ 
     { 
      "id": "1", 
      "name": "ACME Space" 
     }, 
     { 
      "id": "2", 
      "name": "XYZ Tech" 
     } 
    ] 
} 

내가 RestKit이 meta 키 또는 Organization 객체에 사용되는 objects 키의 존재를 좋아하지 않는 것으로 가정한다.

나는 이것을 RKFetchedResultsTableController으로 시도하고있다. 내가 오버라이드 할 수있는 델리게이트 콜백이나 RestKit이 좋아하지 않는 추가 JSON을 제거하기 위해 하위 클래스로 만들 수있는 클래스가 있습니까? Tastypie가 JSON 응답을 내보내는 방식을 변경하는 것이 더 쉬운가요?

이 질문은 this unanswered SO question과 유사합니다.

답변

2

현재 개발의 후반 단계에있는 기능/reboot-networking-layer 분기를 살펴 보는 것이 좋습니다. RKResponseDescriptor이라는 새로운 클래스를 사용하여 키 - 경로 및 URL 기반 매핑 구성의 조화가 많은 기능 중 하나입니다. 기본적으로 이것은이 경로 패턴 (이 경우/api/v1/organizations)에서 객체를로드 할 때 주어진 매핑을 사용하여 '객체'키 경로를 매핑한다고 말할 수 있습니다. 이것은 '객체'와 같은 일반적인 키 경로에 대한 주요 경로 모호성과 관련된 이전 문제를 해결합니다.

머리글 (http://restkit.org/api/0.20.0-dev/index.html 게시)에 광범위한 설명서가 있으며 https://github.com/RestKit/RestKit/tree/feature/reboot-networking-layer에 게시 된 새로운 README.md가 있습니다.

+0

나는 오늘 밤에 그 지점을 살펴볼 것입니다. Blake - 그것은 유망한 것으로 들립니다. 나는 항상 API를 제어 할 수 없을 수도 있으므로 RestKit과 Restart 사이의 임피던스 불일치를 수정하고 싶습니다. 또한 귀하의 빠른 답변에 감사드립니다. 프레임 워크 개발자가 질문에 대답 할 때 항상 좋습니다. – Erik

+0

패치를 단독으로 지원하면 더 가까이서 볼 가치가 있습니다! – Erik

+0

0.20에 많은 훌륭한 기능이 포함되어 있습니다. 멋져 보이지만 많은 코드를 다시 작성해야한다는 점과 개발 용으로는 두려운 것 같습니다. 이미 새 코드를 시작했지만, 0.20로 전환 할 필요없이 내 작은 문제에 대한 중간 솔루션을 찾는 것이 좋습니다. – Erik

0

TastyPie의 개발 버전에는 구별하는 데 사용할 수있는 Meta.collection_name 속성이 있습니다. 여기 documentation을 참조하십시오.

그 자리에 나는 Meta 클래스를 만들고 이것을 forKeyPath:@"meta"에 매핑하고 나머지는 나머지를 알아 냈습니다. 하나의 메타 객체와 N 개의 실제 객체로 객체 목록을 다시 얻습니다.