2011-09-26 222 views
3

我在我的REST風格的web服務(Rails)上有方法「getBuses」。該方法需要返回JSON中的總線列表 。但是,當我發送請求「/getBuses.json」我 需要發送RestKit - POST響應對象映射

params = [NSDictionary 
dictionaryWithObjectsAndKeys: @"2011-08-16", @"datum", @"TRUE", 
@"fromSerbia", nil]; 

我張貼PARAMS,因爲我需要(只爲特定 巡演的具體日期)過濾響應。 這樣。然後,我期待的迴應:

{ 
    "buses" : [ { 
    "bus_number" : "1", 
    "created_at" : "2011-08-15T23:07:52Z", 
    "id" : 1, 
    "lat" : 44.815, 
    "long" : 20.4665, 
    "model" : "Setra", 
    "registar_number" : "123456", 
    "seats" : 50, 
    "tour_id" : 1, 
    "updated_at" : "2011-08-15T23:07:52Z" 
    }, { 
    "bus_number" : "2", 
    "created_at" : "2011-08-15T23:07:52Z", 
    "id" : 2, 
    "lat" : 44.812, 
    "long" : 20.465, 
    "model" : "Mercedes", 
    "registar_number" : "2234", 
    "seats" : 60, 
    "tour_id" : 1, 
    "updated_at" : "2011-08-15T23:07:52Z" 
    } ] 
} 

我只需要使用的NSArray對象總線。 你能告訴我代碼示例如何使這個請求和使用RestKit進行對象映射?

回答

5

正如我告訴你的IRC頻道,在您的RKClient例如,你可以使用這個方法:

(NSURL *)URLForResourcePath:(的NSString *)resourcePath queryParams:(NSDictionary的*)queryParams

所以你應該這樣做:

[objectManager.mappingProvider setMapping:busesMapping forKeyPath:@"buses"]; 

params = [NSDictionary dictionaryWithObjectsAndKeys: @"2011-08-16", @"datum", @"TRUE", @"fromSerbia", nil]; 
NSURL *someURL = [objectManager.client URLForResourcePath:@"/service/getLocations.json" queryParams:params]; 

[objectManager loadObjectsAtResourcePath:[someURL absoluteString] delegate:self]; 

該方法使用resourcePath和參數給出的參數構建一個有效的URL。然後你需要使用NSURL對象的absoluteString將其設置回去。希望這可以幫助!