我使用RestKit 0.20来调用端点。此端点需要一个包含签名的参数,作为一种验证。此签名取决于请求参数:例如,如果我们要发送{"foo": 1, "bar": 2}
,则签名计算为hash("somesecretfoo1bar2")
,然后应将其添加到有效负载中,使其最终类似于{{ 1}}。
我不确定使用RestKit实现这一目标的最佳方法是什么。我可以将它挂钩到每个单独的请求描述中,但由于每个请求都是相同的进程,因此我希望在映射完成后将其挂钩到请求操作中。
我该怎么做?
我查看了重载{"foo": 1, "bar": 2, "sig": "oursignature"}
,但无法确切地知道这个位置,以及我是否仍然可以使用RKObjectRequestOperation
的{{1}}。
答案 0 :(得分:0)
我会考虑修改您的数据模型类,可能使用一个共同的超类,以便您可以在映射中使用- (NSString *)sig
方法。此方法可以收集将要发送的所有键和值(可能使用dictionaryWithValuesForKeys:
)。
尝试修改RestKit类时,这应该更容易,更易于维护。
替代方法,而不是尝试子类RKObjectRequestOperation
,将子类RKNSJSONSerialization
并将子类设置为在对象管理器([RKMIMETypeSerialization registerClass:forMIMEType:]
)上使用的序列化器。
然后,您可以实施dataFromObject:error:
来改变传递的object
,处理内容并添加新的键/值对,然后调用super
。