1

私の安らかなAPI:

GET http://example.com/articles
GET http://example.com/articles/:id
...

記述子の設定は次のとおりです。

RKResponseDescriptor *responseDescriptorArticleList = [RKResponseDescriptor
                                responseDescriptorWithMapping:articleMapping
                                method:RKRequestMethodGET
                                pathPattern:@"/articles"
                                keyPath:@nil     
                                statusCodes:[NSIndexSet indexSetWithIndex:200]];


RKResponseDescriptor *responseDescriptorArticle = [RKResponseDescriptor
                               responseDescriptorWithMapping:articleMapping
                               method:RKRequestMethodGET
                               pathPattern:@"/articles/:id"
                               keyPath:nil
                               statusCodes:[NSIndexSet indexSetWithIndex:200]];

(GET) http://example.com/articlesの機能

[objectManager getObjectsAtPath:@"/articles"
                    parameters:nil
                    success:^sucess{...} failure:^failue{...}];

(GET) http://example.com/articles/:idの関数が機能しない

//Whatever Object is article object or article.id, it doesn't work
[objectManager getObject:Object path:@"/articles/:id"
                    parameters:nil 
                    success:^sucess{...} failure:^failue{...}];

サーバー コンソールの表示:

GET /articles/:id 404 117ms

/:id を article.id に置き換えていないことは明らかです

0.20.x 用に更新されていないように見える RestKit ドキュメントと例を参照しましたが、答えが見つかりませんでした。あなたの助けに感謝します。

4

1 に答える 1

3

置換は常にパス パターンに行われるわけではありません。特に、getObject:path:parameters:success:failure:RestKit の呼び出しがパス パターンではなくパスを想定している場合は、何も置き換えようとしません。応答記述子は問題ありません。パスパターンは常にそこでチェックされます。

getObject:path:parameters:success:failure:オブジェクトが指定され、パスが指定されていない場合 (パスは である必要があります) は、パス パターンに挿入されますnilGETこの場合、オブジェクト マネージャーは、オブジェクトのクラスと要求の種類に一致するルーターを探します。したがって、次のようなルーターを追加する必要があります。

[objectManager.router.routeSet addRoute:[RKRoute routeWithClass:[...Article class] pathPattern:@"/articles/:id" method:RKRequestMethodGET]];
于 2013-08-25T16:09:26.093 に答える