Laravel で REST API を作成していますが、理解できないことが 1 つあります。状況は次のとおりです。ユーザーはログインして記事を閲覧し、お気に入りにすることができます。
お気に入りのテーブルは、article_id
とuser_id
リクエストは次のように設計されています。
[GET]
/article/24 記事を見る 24[GET]
/article/24/favoriteはお気に入り を示し、そうでない場合は 404 を返します[POST]
/article/24/favorite お気に入り にする[DELETE]
/article/24/favorite お気に入り を削除
問題ないように見えますが、ネストされたリソースはデフォルトで次の形式を想定しています。
/controller/[id]/sub_controller/[sub_id]
このサブ ID要件を回避する最善の方法は何ですか? お気に入りの ID は必要ありません。記事 IDとユーザー IDの組み合わせだけでデータベース内のアイテムを見つけることができるからです。
これらは、リクエストの現在のルートです。
Route::resource('articles', 'ArticlesController',
array('only' => array('index','store','show','destroy')));
Route::resource('articles.favorite', 'ArticlesFavoriteController',
array('only' => array('show','store','destroy')));
現在、正しいルートをトリガーするために、API ユーザーが URL に /0 を追加する必要がありますが、もっと良い方法があるはずです。