1

私はこのように休憩を呼んでいます

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");
}];

それはうまくいくでしょう。

4

1 に答える 1

1

メタデータを使用できます。メタデータには、アクセスできるクエリ パラメータの辞書が含まれています。マッピングには次が含まれます

@"@metadata.query.parameters.parent": @"parent"
于 2015-06-12T15:06:47.183 に答える