私はこのように休憩を呼んでいます
GET /entities?parent=123
[
{id:1, name:"name 1"},
{id:2, name:"name 2"}
]
私のエンティティ定義には次のフィールドがあります
id
name
parent
問題は、親フィールドが応答に含まれていないことです。それは要求にあります。親フィールドをリクエストからコアデータに保存するにはどうすればよいですか?
私は運がないので、これらのものを検索しようとしました。
- restkit によって処理される前に応答を変換できるトランスフォーマーを探してみましたが、何も見つかりませんでした。
- RKObjectRequestOperation でメタデータ マッピングを見たことがありますが、これを使用できるかどうか、またはどのように使用できるかわかりませんでした。
ありがとう
編集
以下の回答は、それがオブジェクト マネージャーで使用されている場合にのみ機能します。したがって、次のように動作します
RKDynamicMapping *learningObjectMapping = [MTAbstractLearningObject map];//this contains metadata mapping for @metadata.routing.parameters.entityId
RKResponseDescriptor* learningObjRd = [RKResponseDescriptor responseDescriptorWithMapping:learningObjectMapping
method:RKRequestMethodGET pathPattern:@"entity/:entityId" keyPath:@"objects"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[self.objectManager addResponseDescriptor:learningObjRd];
[self.objectManager.router.routeSet addRoute:[RKRoute routeWithName:@"learningObjects" pathPattern:@"entity/:id" method:RKRequestMethodGET]];
オブジェクトマネージャが上記のように構成され、リクエストが次のように行われた場合。
[self.objectManager getObjectsAtPathForRouteNamed:@"learningObjects" object:entity parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"API: Success got learning objects");
}failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"API: Failed to get learning objects");
}];
それはうまくいくでしょう。