按URL中的ID进行RestKit关系映射
假设我在users/1/items
上有一个API,它返回ID为1的user
的items
列表。
假设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"); }];