0

我正在使用一个只有 POST 调用的 API。创建、编辑和删除。这会导致 RestKit 在编辑和删除方面出现一些问题。

按预期创作作品。但是,当我对一个对象进行编辑时,它不会保存到我的设备中,直到我再次调用 GET 请求(这也可以)。我假设这是因为我没有调用 patchObject 和 deleteObject(相反我必须使用 postObject),并且在后台发生了一些 Core Data 魔术。

他们的 API 将在不久的将来更新,但是在人工时间有没有办法欺骗对象管理器以不同的方式处理我的 POST 请求?

4

2 回答 2

0

这对你来说不会很有趣,因为 RestKit 100% 坚持 REST 概念。看一下 RKObjectManager 的代码(这里是实现)。RKObjectManager 是被子类化的,但我知道 RestKit 的创建者 Blake 根据发送的请求的类型进行了大量的调节,因此将它们欺骗到所有 POST 对我来说看起来很危险。

您可以做的仍然是使用 RestKit 中的所有postObject:deleteObject:patchObject:等,但将 RK 对AFNetworking(HTTPClient 底层)的调用欺骗到所有 POST。

- (NSMutableURLRequest *)requestWithMethod:path:parameters:在 RKObjectManager 中查看。

希望这能有所帮助!

于 2012-12-12T19:39:57.777 回答
-1

您应该直接使用 PATCH 进行更新,使用 DELETE 直接删除,而不是为这两个操作调用 POST。

RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://restkit.org"];
[manager addRequestDescriptor:requestDescriptor];
[manager addResponseDescriptor:responseDescriptor];

// POST to create
[manager postObject:article path:@"/articles" parameters:nil success:nil failure:nil];

// PATCH to update
article.body = @"New Body";
[manager patchObject:article path:@"/articles/1234" parameters:nil success:nil failure:nil];

// DELETE to destroy
[manager deleteObject:article path:@"/articles/1234" parameters:nil success:nil failure:nil];

从新的 RestKit Docs检查这个链接。

于 2012-12-12T08:20:17.277 回答