我正在使用RestKit来访问Tastypie API。我控制了两端。
我已经配置了RestKit映射,以便在`/ api / v1 / organizations / 1 /上成功加载“裸”JSON资源:
{
"id": "1",
"name": "ACME Space"
}
但是如何配置RestKit来加载/api/v1/organizations/
的资源,如下所示:
{
"meta":
{
"limit": 20,
"next": null,
"offset": 0,
"previous": null,
"total_count": 2
},
"objects":
[
{
"id": "1",
"name": "ACME Space"
},
{
"id": "2",
"name": "XYZ Tech"
}
]
}
我认为RestKit不喜欢meta
密钥或用于objects
对象的Organization
密钥。
我正在尝试使用RKFetchedResultsTableController
执行此操作。是否有一个我可以覆盖的委托回调或一个我可以子类去掉RestKit不喜欢的额外JSON的类?是否更容易改变Tastypie发出JSON响应的方式?
此问题与this unanswered SO question类似。
答案 0 :(得分:2)
我建议您查看当前处于开发后期的feature / reboot-networking-layer分支。其中一个功能是使用名为RKResponseDescriptor
的新类来协调基于密钥路径和URL的映射配置。基本上,这可以说,当我在此路径模式(在这种情况下,/ api / v1 / organizations)加载对象时,使用给定的映射映射“对象”键路径。这适用于先前关键路径歧义的先前问题,例如“对象”。
标题中有大量文档(在http://restkit.org/api/0.20.0-dev/index.html发布),新的README.md已发布到https://github.com/RestKit/RestKit/tree/feature/reboot-networking-layer。
答案 1 :(得分:0)
TastyPie的开发版本具有可用于区分的Meta.collection_name
属性。请参阅此处的documentation。
有了这个,我创建了一个Meta
类并将其映射为forKeyPath:@"meta"
,RestKit找到了其余的。我用一个Meta对象和N个实际对象返回对象列表。