2011-09-26 4 views
3

J'ai la méthode "getBuses" sur mon service web RESTful (Rails). Cette méthode doit retourner me liste de bus dans JSON. Mais, quand j'envoyer demande de « /getBuses.json » Je besoin d'envoyerRestKit - mappage d'objet de réponse POST

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

Je poste params parce que je besoin de réponse filtrée (juste pour la tournée spécifique à une date particulière). réponse Alors, j'attends comme ceci:

{ 
    "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" 
    } ] 
} 

J'ai juste besoin NSArray avec des objets de bus. Pouvez-vous me donner un exemple de code comment faire cette demande et faire un mappage d'objet avec RestKit?

Répondre

5

Comme je vous l'ai dit dans le canal IRC, dans votre instance RKClient vous pouvez utiliser cette méthode:

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

Donc, vous devriez le faire comme ceci:

[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]; 

cette méthode crée une URL valide en utilisant la resourcePath et les paramètres que vous donnez comme paramètre. Et puis vous devez le redéfinir en utilisant la chaîne absoluteString de l'objet NSURL. J'espère que cela t'aides!

Questions connexes