Динамическое сопоставление RestKit с идентификатора URL

Я обновляю старое приложение. он использовал ресткит 0.9.x, а теперь приложение будет использовать 0.24.0

у меня есть API, который дает языковые данные.

sampleurl.com/api/v3/язык

{
"sites": [
    {
        "id": "de",
        "label": "Deutsch"
    },
    {
        "id": "fr",
        "label": "Français"
    },
    {
        "id": "en",
        "label": "English"
    }
]}

если я использую sampleurl.com/api/v3/lang/fr, я получаю информацию из lang fr. у меня есть данные, относящиеся к языку. я получаю данные с помощью sampleurl.com/api/v3/lang/fr/data

у меня нет идентификатора языка внутри данных формы json. В нашей основной модели данных у нас есть язык сущностей и данные сущности с отношением между ними. он отлично работал со старым RestKit, но я не могу заставить его работать с reskit 0.24.x

я могу получить все данные из данных, но когда я пытаюсь использовать отношение, это не работает, потому что отношение не является необязательным.

Мой старый код, работающий с ресткитом 0.9.x:

[_objectManager.mappingProvider setObjectMapping:self.dataMapping forResourcePathPattern:@"/lang/:langid/data"];
[self.dataMapping mapKeyPath:@"parentIdKey" toRelationship:@"data" withMapping:self.langMapping];

Итак, мой объект Data имеет объект lang.

Кто-нибудь знает, как сделать это сопоставление в RestKit 0.24.x?


person lolitar    schedule 16.01.2015    source источник
comment
Покажите изображение модели данных или опишите связь и имя атрибута lang. Вы пытались использовать ключевой путь в пути (заменив: langid на что-то вроде: data.langid)?   -  person Wain    schedule 16.01.2015
comment
У меня недостаточно представителей, чтобы опубликовать изображение. у меня есть один язык Entity с 2 идентификаторами свойств и меткой в ​​виде строки и одним отношением ToMany к данным, которые являются необязательными, вторыми данными Entity, которые имеют некоторое свойство (данные, идентификатор, детали,...) и одно отношение toOne к языку это необязательно.   -  person lolitar    schedule 19.01.2015
comment
И вы пытались изменить :langid на что-то другое? Нравится language.id?   -  person Wain    schedule 19.01.2015
comment
да, это не работает. Похоже, что моя проблема похожа на эту: stackoverflow.com/questions/16734694/ я добавил временный атрибут к данным с именем langId, добавил @@metadata.routing.parameters.langid :@langId в мой картографический словарь и попытаться выяснить, как установить данные с маршрутом, но пока мне это не удалось.   -  person lolitar    schedule 19.01.2015
comment
В основном вам нужно будет явно добавить значение в строку пути, чтобы оно было доступно в метаданных для вставки в объект данных.   -  person Wain    schedule 19.01.2015
comment
Спасибо, наконец-то я заработал с вашим старым ответом на тему. [_objectManager.router.routeSet addRoute:[RKRoute routeWithName:@lang pathPattern:@/lang/:id/метод данных:RKRequestMethodGET]]; а затем addConnectionForRelationship:@languageconnectedBy:@{ @langId: @id }];   -  person lolitar    schedule 19.01.2015