使用RESTKit将url参数映射到对象

时间:2013-08-19 22:19:15

标签: ios objective-c mapping restkit restkit-0.20

有没有办法将URL中的参数映射到结果?

我有一个休息服务,用户可以通过其ID搜索某些内容。路径为search/:id 结果包含名称和其他属性,但不包含ID。

我可以这样做:

NSArray *array = mappingResult.array;
for (Item *item in array) {
        [item setId:itemID];
}

但我希望有一个更好的方式......

感谢任何提示
Xean

2 个答案:

答案 0 :(得分:7)

您希望使用在响应描述符中指定的路径模式。然后,您希望在映射期间使用路由(RKRoute)和元数据。元数据包括一个路由部分,可以访问从URL路径中提取的参数。

关于元数据here的一些信息(文档有点缺乏)。

在您要使用的地图中:

@metadata.routing.parameters.id

作为映射源键路径。


要使路由工作,您需要将路由添加到对象管理器:

[manager.router.routeSet addRoute:...

然后你需要以一种意味着使用路线的方式提出请求,例如getObjectsAtPathForRouteNamed:object:parameters:success:failure:

答案 1 :(得分:1)

您可能需要指定 响应描述符的pathPatternkeyPath ::

RKResponseDescriptor *responseDescriptor =
  [RKResponseDescriptor
   responseDescriptorWithMapping:itemMapping
   method:RKRequestMethodAny
   pathPattern:@"search/:id"
   keyPath:@"item"
   statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];