如何将核心数据类路由到 RestKit 中的多个资源路径?

Posted

技术标签:

【中文标题】如何将核心数据类路由到 RestKit 中的多个资源路径?【英文标题】:How can I route a Core Data class to multiple resource paths In RestKit? 【发布时间】:2012-05-01 17:01:30 【问题描述】:

我有一个 Web 服务,它需要两部分查询才能完全获取我需要的信息。我可以通过对 /vehicles.json 的 GET 请求来查询所有车辆的列表,它会为我提供所有车辆的列表,如下所示:

 
    vehicles: [
       
           vehicle_name: "Sam's Toyota Corola",
           uri: ".../vehicle/1001.json"
       ,
       
           vehicle_name: "John's Honda Accord",
           uri: ".../vehicle/1002.json"
       
    ]

uris 是唯一的 id。然后,如果我想了解更多信息,我可以查询 通过对车辆 uri 的 GET 请求获取车辆的详细信息,即 /vehicle/1001.json,它为我提供了这样的车辆的详细信息:

 
    vehicle: 
       engine: "V6",
       sunroof: "no"
    

我想用一种核心数据类型表示车辆,该类型包含:名称、uri、引擎和天窗,但在 RestKit 中有两条路线映射到相同的核心数据类型,如下所示:

// Map the list of all vehicles route
[objectManager.router routeClass:[CDVehicle class] toResourcePath:@"/vehicles.json" forMethod:RKRequestMethodGET];

// Map the show of a specific vehicle route
[objectManager.router routeClass:[CDVehicle class] toResourcePath:@"/vehicle/(vehicleID).json" forMethod:RKRequestMethodGET];

RestKit 不喜欢这样,并给我一个错误,即 GET 方法有两条路由映射到同一事物。为什么?!?这当然是可以做到的,看看你如何用 RestKit 做几乎任何事情。

有人知道怎么做吗?

【问题讨论】:

在您的 JSON 中,您有车辆和车辆。您不想将车辆映射到 CDVehicles 并将车辆映射到 CDVehicle 吗?? 不,我希望映射到 Core Data 中的单个车辆类。 Web 服务 api 会返回一个仅包含名称和 uri 的车辆列表,然后希望您在 uri 上执行另一个 GET 以获取该车辆的其余信息(如果需要)。我不喜欢这样,只想将数据存储在单个 Core Data 类中,一开始只填写名称和 uri,然后在后续 Web 服务调用后填写其余详细信息。 【参考方案1】:

这个问题有点老了,但是我google了你的问题和一个类似的问题,另一个有一个很好的答案,以防你仍然感兴趣,请参考这个帖子:How do I have two post routes for the same class in RestKit

他们在谈论postObject,但是RestKit中的get方法也可以做同样的事情。

【讨论】:

以上是关于如何将核心数据类路由到 RestKit 中的多个资源路径?的主要内容,如果未能解决你的问题,请参考以下文章

将输出映射到 Restkit 中的核心数据时崩溃

如何通过 iOS 6 中的 RESTkit 2.0 将 JSON 中的 base64 图像导入核心数据二进制文件?

将 JSON 键值映射到 RestKit 0.20.1 中的核心数据属性

如何使用 RestKit 将嵌套的 JSON 对象存储到核心数据中

使用 RestKit 将一个裸露的 URL 数组映射到核心数据实体

RestKit – 使用关系映射将单个源映射到多个目的地