Restkit:将请求中的字段包含到对象映射中
Posted
技术标签:
【中文标题】Restkit:将请求中的字段包含到对象映射中【英文标题】:Restkit: including field from request into object mapping 【发布时间】:2015-06-12 13:56:08 【问题描述】:我正在打电话休息
GET /entities?parent=123
[
id:1, name:"name 1",
id:2, name:"name 2"
]
我的实体定义有以下字段
id
name
parent
问题是响应中没有父字段,它在请求中。如何将请求中的父字段保存到 coredata?
我试图搜索这些东西,但没有成功。
我尝试寻找一些可以在 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");
];
然后就可以了。
【问题讨论】:
【参考方案1】:您可以使用元数据,它包含您可以访问的查询参数字典。您的映射将包含
@"@metadata.query.parameters.parent": @"parent"
【讨论】:
你的意思是我可以在 RKEntityMapping 中使用它?还有一件事。在我的情况下,参数不在查询字符串中,而是像 /entites/parent/123 这样的 url 的一部分 我正在寻找有关此的概念。从这个答案中得到了很好的指导,可以进一步探索。试图找到有关元数据映射的文档。得到cocoadocs.org/docsets/RestKit/0.24.1/Classes/… 谢谢你的回答。 如果您使用的是路径组件,那么您应该查看RKRoute
让我深入研究一下。然后我会更新答案并接受它。谢谢以上是关于Restkit:将请求中的字段包含到对象映射中的主要内容,如果未能解决你的问题,请参考以下文章
RestKit 将包含 lat & lng 的数组映射到 CoreData