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

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

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

我可以这样做:

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

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

谢谢你的任何提示
Xean

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

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

在您想要使用的映射中:

 @metadata.routing.parameters.id 

作为映射源的关键路径。


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

 [manager.router.routeSet addRoute:... 

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

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

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