0

我已经设法获取对象并将新对象发布到服务器,但 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":[...]}这是有道理的,因为可能有多个对象)
  • 当我发布一个对象时,RestKit 期望后端的答案是单数:{"foo":...}. 然而,由于它使用与 GET 相同的 responseDescriptor,因此它会变成复数形式而丢失。

如果我在我的 POST 作品中替换keyPath:@"foos"为...但不是我的 GET。keyPath:@"foo"responseDescriptor

我该如何调和两者?

4

1 回答 1

0

你是对的。基本上,您只需要创建多个响应描述符来涵盖不同的情况。您可以在每个中使用相同的映射,但 RestKit 需要知道在处理响应时要查找的内容,并且您的 2 个案例是不同的。

于 2013-09-16T19:49:36.163 回答