0

オブジェクトを 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つを調和させることができますか?

4

1 に答える 1

0

あなたが正しい。基本的に、さまざまなケースをカバーするために複数の応答記述子を作成する必要があります。それぞれで同じマッピングを使用できますが、RestKit は応答を処理するときに何を探すべきかを知る必要があり、2 つのケースは異なります。

于 2013-09-16T19:49:36.163 に答える