【问题标题】:RestKit object mapping with foreign keys and servicesRestKit 对象映射与外键和服务
【发布时间】:2013-09-30 14:45:45
【问题描述】:

我正在尝试为类似 rest 的服务设置一个 RestKit 对象映射,但不幸的是我无法控制。

该模型是带有产品列表的愿望清单。 WishList 和 Product 显然是多对多的关系。愿望清单和产品具有不同的属性,为简单起见,我们假设它们都只有名称。

我有单独的服务来获取愿望清单的详细信息、产品的详细信息以及它们之间的关系。

例如:

GET /api/wish_list/?id=1234

{ 
    "name"="My wish list",
    "id"=1234
}

GET /api/products

{
    products:[
    {
        "name"="Product 1",
        "id"=1111
    },
    {
        "name"="Product 2",
        "id"=2222
    },
    {
        "name"="Product 3",
        "id"=3333
    }]
}

GET /api/wish_list_products/?wish_list_id=1234

{
    products:[
    {
        "id"=1111
    },
    {
        "id"=2222
    }
}

我创建了 Product 和 WishList 实体之间的核心数据关系,但我如何告诉 RestKit 它应该发出第二个请求以获取特定 WishList 的产品 ID 列表?

我想我应该使用 [RKRoute routeWithRelationshipName:objectClass:pathPattern:method:] 和/或 RKConnectionDescription 对象,但我真的无法从帮助中弄清楚他们如何帮助我。

【问题讨论】:

    标签: ios objective-c restkit


    【解决方案1】:

    RestKit 不会自动加载关系的数据,您需要告诉它何时这样做。如果您使用routeWithRelationshipName:objectClass:pathPattern:method: 添加路由,那么您可以使用getObjectsAtPathForRelationship:ofObject:parameters:success:failure: 发出请求。基本上,它将关系名称链接到请求以收集所需的详细信息。

    【讨论】:

    • 谢谢。出于某种原因,我认为 RestKit 会自动加载数据。我设法让getObjectsAtPathForRelationship:ofObject:parameters:success:failure: 工作,但在我看来,它只是获取对象而不创建与源对象的关系。我是否还必须手动创建关联?
    • 它也应该填充关系,它有源对象和关系的名称。您是否检查了映射的(跟踪)日志以查看它是否表明有任何问题?
    • 我仔细检查了跟踪日志,但没有发现任何可疑之处:RestKit 根本不会尝试创建这些关系。但是,我可以在获取子对象的操作的成功块中很容易地创建它们。
    猜你喜欢
    • 2017-02-10
    • 2013-06-23
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 2012-09-24
    相关资源
    最近更新 更多