8

is there a way to map the parameters in an URL to the results?

I got a rest service where the user can search something by its ID. The path is search/:id The results contains the name and other properties but not the ID.

I could do something like this:

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

but I hope there is a nicer way...

Thanks for any hints
Xean

4

2 回答 2

7

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

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

在您要使用的映射中:

@metadata.routing.parameters.id

作为映射源键路径。


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

[manager.router.routeSet addRoute:...

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

于 2013-08-20T08:57:19.670 回答
1

您可能需要指定响应描述符pathPattern的and :keyPath

RKResponseDescriptor *responseDescriptor =
  [RKResponseDescriptor
   responseDescriptorWithMapping:itemMapping
   method:RKRequestMethodAny
   pathPattern:@"search/:id"
   keyPath:@"item"
   statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
于 2013-08-20T03:13:33.347 回答