RestKit 按 ID 的属性关系

Posted

技术标签:

【中文标题】RestKit 按 ID 的属性关系【英文标题】:RestKit property relationship by ID 【发布时间】:2013-12-12 21:49:31 【问题描述】:

如果不使用 Core Data,我如何配置 RestKit 以将作为外键的 ID 映射到另一个对象?基本上我想做RKConnectionDescription 所做的事情,但没有核心数据部分。

考虑以下两个端点和 JSON 响应:

GET /users/:userID


  "user" : 
    "name" : "Bob Loblaw"
    "group_id" : "2"
  

GET /groups/:groupID


  "group" : 
    "id" : "2"
  

当我加载我的 User 对象时,我希望它的 group 属性根据 user.group_id JSON 键路径映射到 GET groups/:groupID 的结果。这可能吗?如何描述涉及请求另一个资源以满足属性映射的关系?

【问题讨论】:

【参考方案1】:

您不能在映射期间执行此操作,因为没有 Core Data,RestKit 无法在所需外键映射的另一端定位对象。

因此,在成功块中,您需要找到合适的对象并自己建立连接。

【讨论】:

如果您有关系,将其放入 Core Data 是很自然的。你有不想的理由吗? 主要是因为它似乎是不必要的复杂性。当我通过 Core Data 映射关系时,似乎 Group 对象必须存在于持久存储中,然后才能成功映射属性。也许我只是遗漏了一些东西,但我必须播种/请求每个 Group 对象,以便它们在请求我的 User 对象之前持久保存在 Core Data 中。除非我在请求用户之前请求了每个组对象,否则用户的组属性为零。看起来对吗? 您可以为组关系创建一个映射,如果找不到现有对象,它将创建一个存根对象。然后,当您请求该组时,它将完成存根。 取决于应用程序。它为您提供了您需要为当前用户请求的对象列表...

以上是关于RestKit 按 ID 的属性关系的主要内容,如果未能解决你的问题,请参考以下文章

关系映射中的Restkit映射keyPath

RestKit 添加属性映射和关系映射

Restkit:嵌套关系映射

通过 ID 数组映射 RestKit 中的关系不起作用

Restkit 映射 - 使用嵌入式对象/关系作为标识属性

RestKit - 实体映射属性转换