【问题标题】:Add values to RestKit mapping result dictionary after mapping映射后向 RestKit 映射结果字典添加值
【发布时间】:2014-03-03 14:37:17
【问题描述】:

我使用 RestKit 0.20 调用端点。此端点需要一个包含签名的参数,作为一种验证。此签名取决于请求参数:例如,如果我们要发送{"foo": 1, "bar": 2},则签名计算为hash("somesecretfoo1bar2"),然后应将其添加到有效负载中,使其最终类似于{"foo": 1, "bar": 2, "sig": "oursignature"}

我不确定使用 RestKit 实现这一目标的最佳方法是什么。我可以将它挂接到每个单独的请求描述中,但由于每个请求的处理过程相同,所以我想在映射完成后将其挂接到请求操作中。

我该怎么做?

我研究过重载RKObjectRequestOperation,但看不到确切的放置位置,以及我是否仍然可以使用RKObjectManagerappropriateObjectRequestOperationWithObject

【问题讨论】:

    标签: ios objective-c restkit restkit-0.20


    【解决方案1】:

    我会考虑修改您的数据模型类,可能使用一个公共超类,以便您拥有一个可以在映射中使用的- (NSString *)sig 方法。此方法可以收集将要发送的所有键和值(可能使用dictionaryWithValuesForKeys:)。

    这应该比尝试修改 RestKit 类更容易,更易于维护。

    另一种方法,而不是尝试继承 RKObjectRequestOperation,将继承 RKNSJSONSerialization 并将子类设置为序列化程序以在对象管理器 ([RKMIMETypeSerialization registerClass:forMIMEType:]) 上使用。

    然后,您可以实现dataFromObject:error: 对传递的object 进行变异,处理内容并添加新的键/值对,然后调用super

    【讨论】:

    • 这样会好很多。不幸的是,这些类并不知道它们将始终映射到什么键,并且并非所有键都一直使用,所以我认为我不能这样做。
    猜你喜欢
    • 2013-04-30
    • 1970-01-01
    • 2014-11-15
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多