我正在使用只有POST调用的API。创建,编辑和删除。这导致RestKit出现编辑和删除的一些问题。
按预期创建工作。但是,当我对一个对象进行编辑时,它才会保存到我的设备,直到我再次调用GET请求(这也是有效的)。我假设它是因为我没有调用patchObject和deleteObject(而是我必须使用postObject)并且在后台发生了一些Core Data魔术。
他们的API会在不久的将来更新,但是在man的时候有没有办法欺骗对象管理器以不同的方式处理我的POST请求?
答案 0 :(得分:0)
这对你来说并不好玩,因为RestKit 100%遵守REST概念。看一下RKObjectManager(here is the implementation)的代码。 RKObjectManager是子类化的,但是我知道RestKit的创建者Blake根据发送的请求类型做了很多调整,所以把它们欺骗到所有POST对我来说都很危险。
你可以做的仍然是使用来自RestKit的所有postObject:
,deleteObject:
,patchObject:
等,但是将RK做的操作欺骗到AFNetworking
(HTTPClient底层) )所有POST。
在RKObjectManager中查看- (NSMutableURLRequest *)requestWithMethod:path:parameters:
。
希望这有所帮助!
答案 1 :(得分:-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文档中查看link。