RestKit和Tastypie集成

时间:2012-09-26 22:37:37

标签: restkit tastypie

我正在使用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类似。

2 个答案:

答案 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个实际对象返回对象列表。