0

POST 呼び出しのみを持つ API を使用しています。作成、編集、および削除します。これにより、RestKit の編集と削除に問題が発生しています。

作成は期待どおりに機能します。ただし、オブジェクトを編集しても、GET 要求を再度呼び出すまでデバイスに保存されません (これも機能しています)。patchObject と deleteObject を呼び出しておらず (代わりに postObject を使用する必要があります)、バックグラウンドで Core Data マジックが発生しているためだと思います。

それらの API は近い将来更新される予定ですが、オブジェクト マネージャーをだまして POST 要求を別の方法で処理する方法はありますか?

4

2 に答える 2

0

RestKitはRESTの概念に100%準拠しているため、これは面白くありません。RKObjectManagerのコードを見てください(これが実装です)。RKObjectManagerはサブクラス化されていますが、RestKitの作成者であるBlakeは、送信されたリクエストのタイプに応じて多くの条件付けを行うため、すべてのPOSTにそれらをだますことは私には危険に見えます。

できることは、RestKitからのすべての、、などを引き続き使用することですが、すべてのPOSTに対してRKが(HTTPClientアンダーレイヤー)に対して行う呼び出しをだましpostObject:ます。deleteObject:patchObject:AFNetworking

- (NSMutableURLRequest *)requestWithMethod:path:parameters:RKObjectManagerを見てください。

これがどういうわけか役立つことを願っています!

于 2012-12-12T19:39:57.777 に答える
-1

両方の操作で POST を呼び出すのではなく、更新には PATCH を、削除には DELETE を直接使用する必要があります。

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ドキュメントからこのリンクを確認してください。

于 2012-12-12T08:20:17.277 に答える