2012-12-11 29 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