RestKit 0.20 で GET/POST リクエスト/レスポンスを処理するには、以下のシーケンスに従うことができます:-
最初に、ベース サーバー URL を使用して RKObjectManager を構成します。
RKObjectManager *manager = [RKObjectManager managerWithBaseURL:baseUrl];
[manager.HTTPClient setDefaultHeader:@"Accept" value:RKMIMETypeJSON];
manager.requestSerializationMIMEType = @"application/json";
RestKit は常に要求と応答のオブジェクトを処理するため、応答で期待されるすべてのパラメーターを持つオブジェクトを作成する必要があります。
@interface AuthenticationRequest : NSObject
@property (nonatomic, copy) NSNumber *userName;
@property (nonatomic, copy) NSString *password;
@end
@interface AuthenticationResponse : NSObject
@property (nonatomic, copy) NSNumber *token;
@property (nonatomic, copy) NSString *expiryDate;
@property (nonatomic, copy) NSString *userId;
@end
次に、サーバーの JSON 応答のキーを使用して、ローカル オブジェクトのインスタンス変数の要求と応答のマッピングを構成します。
注: POST または PUT 要求の場合にのみ、要求マッピングを構成します。
RKObjectMapping *requestMapping = [RKObjectMapping mappingForClass:[AuthenticationRequest class]];
[requestMapping addAttributeMappingsFromDictionary:@{
@"userName": @"userName",
@"password" : @"password",
}];
RKObjectMapping *responseMapping = [RKObjectMapping mappingForClass:[AuthenticationResponse class]];
[responseMapping addAttributeMappingsFromDictionary:@{
@"TOKEN": @"token",
@"expiryDate" : @"expiryDate",
@"USERID": @"userId"
}];
次に、渡した pathPattern 値に基づいて、サーバー JSON オブジェクトとローカル オブジェクトのマッピングを実行する応答記述子を作成します。
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[AuthenticationResponse class] rootKeyPath:nil]
[manager addRequestDescriptor:requestDescriptor];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping pathPattern:<rest of the path excluding the baseURL> keyPath:nil statusCodes:nil];
[manager addResponseDescriptor:responseDescriptor];
次の方法でサーバー上で GET リクエストを実行します。
[manager getObjectsAtPath:(NSString *)<rest of the path excluding the baseURL> parameters:(NSDictionary *)parameters
success:(void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
failure:(void (^)(RKObjectRequestOperation *operation, NSError *error))failure];
または、次の方法でサーバー上で POST リクエストを実行します。
[manager postObject:AuthenticationRequest
path:<rest of the path excluding the baseURL>
success:(void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
failure:(void (^)(RKObjectRequestOperation *operation, NSError *error))failure];
成功ブロックと失敗ブロックは、応答の処理を保持します。
詳細については、RestKit の次のリンクを参照してください。
https://github.com/RestKit/RKGist/blob/master/TUTORIAL.md