2013-09-30 3 views
2

Я пытаюсь настроить отображение объектов RestKit для службы, подобной отдыху, над тем, что, к сожалению, я не могу контролировать.Отображение объекта RestKit с помощью внешних ключей и служб

Модель представляет собой список пожеланий со списком продуктов. WishList и продукт имеют отношение «много-ко-многим». Список пожеланий и продукт имеют различные атрибуты, для простоты предположим, что оба они имеют только имя.

У меня есть отдельные услуги, чтобы получить детали списка пожеланий, деталей продукта и отношений между ними.

? Например:

GET/API/wish_list/ID = 1234

{ 
    "name"="My wish list", 
    "id"=1234 
} 

GET/API/продукты

{ 
    products:[ 
    { 
     "name"="Product 1", 
     "id"=1111 
    }, 
    { 
     "name"="Product 2", 
     "id"=2222 
    }, 
    { 
     "name"="Product 3", 
     "id"=3333 
    }] 
} 

GET/API/wish_list_products /? wish_list_id = 1234

{ 
    products:[ 
    { 
     "id"=1111 
    }, 
    { 
     "id"=2222 
    } 
} 

Я создал отношение данных ядра между продуктом и WishList сущностями, но как я мог сказать RestKit того факта, что он должен сделать второй запрос для извлечения списка идентификаторов продуктов для конкретного WishList?

Я думаю, я должен использовать [RKRoute routeWithRelationshipName:objectClass:pathPattern:method:] и/или RKConnectionDescription объект, но я действительно не мог понять, как они могут помочь мне в моем случае.

ответ

4

RestKit не будет автоматически загружать данные для отношений, вам нужно указать, когда это сделать. Если вы добавите маршрут, используя routeWithRelationshipName:objectClass:pathPattern:method:, тогда вы можете сделать запрос, используя getObjectsAtPathForRelationship:ofObject:parameters:success:failure:. В основном это связывает имя отношения с запросом, чтобы собрать необходимые данные.

+0

спасибо. По какой-то причине я предположил, что RestKit автоматически загрузит данные. Мне удалось получить 'getObjectsAtPathForRelationship: ofObject: parameters: success: failure:' work, но мне кажется, что он просто извлекает объекты и не создает отношения с исходным объектом. Нужно ли создавать ассоциацию вручную? – MrTJ

+1

Он должен также заполнить отношения, у него есть исходный объект и имя отношения. Вы проверили журнал (трассировку) для сопоставления, чтобы увидеть, указывает ли он на какие-либо проблемы? – Wain

+1

Я проверил журнал трассировки, но не нашел ничего подозрительного: RestKit просто не пытается создать эти отношения. Однако я могу создать их довольно легко в блоке успеха операции, которая извлекает дочерние объекты. – MrTJ

Смежные вопросы