我有两条路线:
发布 /food.json
请求正文:{"food": {"name":"Banana", color:"yellow"}}
请求描述符:
RKRequestDescriptor *createRequestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:createMapping
objectClass:[Food class]
rootKeyPath:@"food"
method:RKRequestMethodPOST];
-
发布 /food/batch.json
请求正文:{"foods": [{"name":"Banana", color:"yellow"}, {"name":"Apple", "color":"red" }]}
请求描述符:
RKRequestDescriptor *batchRequestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:createMapping
objectClass:[Food class]
rootKeyPath:@"foods"
method:RKRequestMethodPOST];
-
我遇到的问题是创建和批处理请求都使用 POST 请求方法,所以如果我尝试将它们作为请求描述符添加,我得到:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Cannot add request descriptor: An existing descriptor is already registered for the class 'Food' and HTTP method'(POST)'.'
请问描述符是否有条件我可以说:
使用路径batchRequestDescriptor
的{{1}}并使用/food/batch
路径的createRequestDescriptor?
答案 0 :(得分:0)
在这种情况下,您将使用命名路由(RKRoute
Instances),当您想要发布POST时,您将使用requestWithPathForRouteNamed:object:parameters:
,然后从路由创建您的操作。
了解GET的情况更常见,这就是getObjectsAtPathForRouteNamed:object:parameters:success:failure:
存在的原因,但您需要做更多的工作(和/或创建自己的便利方法)