2013-06-26 4 views
3

Предположим, у меня есть API в users/1/items, который возвращает список items для user с идентификатором 1.RestKit Отношения Mapping по ID в URL

Предположим, что ответ API выглядит следующим образом:

{ 
    "items": [ 
     { 
      "id": "1", 
      "description": "Some item" 
     } 
    ] 
} 

Обратите внимание, что ответ не содержит user_id для сопоставления отношений. Возможно ли в RestKit 0.20 сопоставить user_id по URL-адресу (в данном случае 1)? Если да, то как? Я не мог найти упоминания об этом в docs/wiki.

ответ

5

Это. Вам необходимо использовать класс RKRouter (который вы обычно используете с RKObjectManager). Когда вы используете шаблоны маршрутизации и пути, вы можете использовать метаданные маршрутизации в своих определениях сопоставления.

RKRouter docs

Routing configuration example

How to use the meta data (раздел 'Metadata Mapping')

Additional metadata info

+0

Я должен быть слепым. Теперь посмотрим. Благодаря! – Baub

+1

Ссылки на restkit.org нарушены – Besi

1

Вы бы на самом деле сделать это, используя то, что RestKit называет Relationship Routes.

Вот краткий пример:

RKRoute *aRoute = [RKRoute routeWithRelationshipName:@"user-items-relationship" 
           objectClass:User.class 
           pathPattern:@"users/:userid/items" 
            method:RKRequestMethodGET]; 

Тогда вы получите детали как это:

[[RKObjectManager sharedManager] getObjectsAtPathForRelationship:@"user-items-relationship" 
                 ofObject:someUser 
                 parameters:nil 
                 success:^(RKObjectRequestOperation *operation, RKMappingResult *result) 
{ 
    NSLog("I win"); 
} 
                 failure:^(RKObjectRequestOperation *operation, NSError *error) 
{ 
    NSLog("I lose");   
}]; 
Смежные вопросы