2012-12-11 28 views
0

我正在使用只有POST调用的API。创建,编辑和删除。这会导致RestKit出现一些编辑和删除问题。RestKit 0.20 - POST导致问题的所有API调用

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

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

回答

0

这对你来说并不好玩,因为RestKit坚持100%的REST概念。看看RKObjectManager的代码(here is the implementation)。 RKObjectManager被设置为子类,但我知道RestKit的创建者Blake根据发送的请求的类型做了很多调节,所以欺骗他们到所有POST对我来说看起来很危险。

你可以做的仍然是使用所有postObject:deleteObject:patchObject:等从RestKit但欺骗电话RK做AFNetworking(HttpClient的底层)给所有POST。在RKObjectManager中查看- (NSMutableURLRequest *)requestWithMethod:path:parameters:

希望这个帮助莫名其妙!

-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中检查此link

+0

OP明确表示他目前只能使用POST,没有理由复制一些他目前无法使用的方法的文档...... – allaire

+0

@allaire,你是对的,我完全误解了这个问题。对不起。 – clopez