按ID在URL中的RestKit关系映射

时间:2013-06-26 16:01:31

标签: ios objective-c restkit

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

假设API响应如下:

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

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

2 个答案:

答案 0 :(得分:5)

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

RKRouter docs

Routing configuration example

How to use the meta data(“元数据映射”部分)

Additional metadata info

答案 1 :(得分:1)

您实际上可以使用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");         
 }];