ほとんどの RESTful API は、Rabbit オブジェクトなどのリソースへのアクセスを次のようにルーティングします。
GET /rabbits <--- GET all rabbits. HTTP GET
GET /rabbits/:rabbit_id <--- GET one rabbit. Also HTTP GET
POST /rabbits
PUT /rabbit/:rabbit_id
ただし、RestKit では、同じ HTTP 動詞で 2 つのルートを持つことができないため、RKObjectManager の RouteSet に 2 つの GET ルートを追加することはできません。
[manager.router.routeSet addRoute:[RKRoute routeWithClass:[Rabbit class]
pathPattern:@"rabbits"
method:RKRequestMethodGET]];
[manager.router.routeSet addRoute:[RKRoute routeWithClass:[Rabbit class]
pathPattern:@"rabbits/:rabbitID"
method:RKRequestMethodGET]];
//BOOM! Assertion failure
これにより、 「既存のルートと同じクラスとメソッドを持つルートを追加できません」というアサーション エラーが発生します。
同じクラスとメソッドを持つルートを追加できないのはなぜですか? パスが異なります。ウサギのリストと単一のウサギの両方を ID で取得するにはどうすればよいですか? 私はいくつかの回避策を知っていますが、これは回避する必要があるものではないと感じています。