按URL中的ID进行RestKit关系映射

假设我在users/1/items上有一个API,它返回ID为1的useritems列表。

假设API响应如下:

 { "items": [ { "id": "1", "description": "Some item" } ] } 

请注意,响应不包含关系映射的user_id 。 RestKit 0.20中是否可以映射到URL中的user_id (在本例中为1)? 如果是这样,怎么样? 我在docs / wiki中找不到任何提及。

它是。 您需要使用RKRouter类(通常与RKObjectManager使用)。 使用路由和路径模式后,可以在映射定义中使用路由元数据。

RKRouter文档

路由配置示例

如何使用元数据 (“元数据映射”部分)

其他元数据信息

实际上,您可以使用RestKit调用Relationship Routes来实现此目的。

这是一个简短的例子:

 RKRoute *aRoute = [RKRoute routeWithRelationshipName:@"user-items-relationship" objectClass:User.class pathPattern:@"users/:userid/items" method:RKRequestMethodGET]; 

然后你会得到这样的项目:

 [[RKObjectManager sharedManager] getObjectsAtPathForRelationship:@"user-items-relationship" ofObject:someUser parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *result) { NSLog("I win"); } failure:^(RKObjectRequestOperation *operation, NSError *error) { NSLog("I lose"); }];