2015-12-04 7 views
0

Я решил использовать мантию, чтобы использовать некоторые конечные точки JSON, но структура JSON различна в зависимости от того, находитесь ли вы GET ing или POST. Возьмите пользователей конечной точки, например:Как использовать дополнительный словарь в мантии с шинели?

При запросе пользователя вы получите ответ, похожее на это:

{ 
    "random_meta_data": "whatever", 
    "etc.": "etc.", 
    "payload": { 
     "username": "username", 
     "email": "[email protected]", 
     "etc.": "etc." 
    } 
} 

При создании пользователя, вам необходимо отправить что-то вроде этого:

{ 
    "username": "username", 
    "email": "[email protected]", 
    "etc.": "etc." 
} 

Это не трудно решить проблему, но кажется довольно распространенной проблемой, что Mantle должен решить ее.

Я знаю, что я мог бы просто инициализировать модель мантии с dictionary[@"payload"], но Overcoat делает отображение для меня автоматически, и если я буду делать это вручную, я не воспользовался Overcoat больше.

Так что мне интересно, есть ли стандартный способ решения этого вопроса с Mantle и/или Overcoat?

ответ

0

То, что вы описываете, называется ответ обволакивают и вы можете прочитать о том, как иметь дело с теми, в Overcoat README.md:

https://github.com/Overcoat/Overcoat#envelop-and-error-responses

Другие услуги, такие как app.net использовать конверт ответ, который представляет собой ответ JSON верхнего уровня, содержащий запрошенные данные и дополнительные метаданные. Для этих видов услуг вы должны создать свой собственный подкласс OVCResponse и указать путь ключа данных.

@interface AppDotNetResponse : OVCResponse 
... 
@end 

@implementation AppDotNetResponse 
+ (NSString *)resultKeyPathForJSONDictionary:(NSDictionary *)JSONDictionary 
{ 
    return @"data"; 
} 
@end 

Вы можете указать, какой ответ класс для использования в клиенте с помощью переопределения + responseClass.

+ (Class)responseClass { 
    return [AppDotNetResponse class]; 
} 

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

  • Нет связанных вопросов^_^