オブジェクトを GET し、新しいオブジェクトをサーバーに POST することができましたが、POST は iPhone でエラーを生成します。
これが私のセットアップです:
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
問題は(私が思うに)次のとおりです。
- GET すると、バックエンドは JSON に複数のキーがあることを期待します
{"foos":[...]}
(複数のオブジェクトが存在する可能性があるため、これは理にかなっています)。 - 1 つのオブジェクトを POST すると、RestKit はバックエンドからの応答が特異であると想定します
{"foo":...}
。ただし、GET と同じ responseDescriptor を使用するため、複数形になり、失われます。
POST で置き換えると動作しますが、GET ではありませんkeyPath:@"foos"
。keyPath:@"foo"
responseDescriptor
どうすれば2つを調和させることができますか?