ユーザー種別ごとに異なるページで同一のリソースを扱う場合のURL設計について
課題
例えば、管理者(Administrator)、編集者(Editor)、一般利用者(User) がそれぞれログイン後の専用ページで books というリソースを扱いたい場合、どのような URL を提供すべきですか?
前提条件
- 管理者かつ編集者の人もおり、それぞれ全く別のUIを提供するのでページの共通化は不可
- 各ユーザー種別ごとにマイクロサービス化等はせず、単一のアプリケーションで実装する
現状案
1つの案は
administrators/books
editors/books
users/books
のようにユーザー種別の複数形を用いるパターンですが、リソース名を含めてしまうと URL からはリソースの関係がネストしているように見えてしまう気がします。
あるいは
administrator/books
editor/books
user/books
のようにリソースの単数形を用いるパターンも考えましたが、この場合に素直に Controller を作ると User::BooksController のように、名前空間のモジュール名とModelクラス名が衝突してしまう問題があります。
もう1つの案は
administrator_page/books
editor_page/books
user_page/books
のように素直に誰向けのページかを URL で語るパターンですが、あまり見栄えが良くないように感じますし、こういった URL を提供しているサービスを思い付きません。
以上、よろしくお願いいたします。