Мне удалось получить объекты и POST нового объекта на сервер, но POST генерирует ошибку на iPhone.RestKit: путают, как настроить POST
Вот мои настройки:
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:entityMappingFoo pathPattern:@"/foos" keyPath:@"foos" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; // Works well for GET
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:[entityMappingFoo inverseMapping] objectClass:[Foo class] rootKeyPath:@"foo"]; // Client --> Server works
Проблема (я думаю), что:
- , когда я получаю, то фоновый ожидает, что JSON, чтобы иметь множественную ключ:
{"foos":[...]}
(что имеет смысл, так как может быть несколько объектов) - Когда я отправляю POST на один объект, RestKit ожидает, что ответ из фонового шрифта будет сингулярным:
{"foo":...}
. Тем не менее, поскольку он использует тот же responseDescriptor, что и для GET, он получает множественное число, и он потерян.
Если я заменяю keyPath:@"foos"
по keyPath:@"foo"
в responseDescriptor
мой POST работает ... но не мой GET.
Как смириться с этими двумя?
спасибо Wain. Как вы это делаете? Я думал, что это будет что-то вроде этого, и я попытался создать еще один дескриптор ответа, но я не нашел, как сказать postObject использовать этот дополнительный дескриптор вместо исходного (так как сам путь является/foos в обоих случаях). Кажется, что это не так, не так ли? – PJC
Я нашел решение, которое должно использовать точный statusCode (201 для Created vs 200 для нормального GET) для каждого дескриптора response. Чувствует себя странно, хотя это нужно сделать. У меня такое впечатление, что мне не хватает чего-то очевидного ... – PJC