【REST】TwitterのURLを再設計する
この記事ではRESTの考え方を理解するために、TwitterのURLをRESTの設計原則に従って再設計します。 1. 対象の機能 今回はTwitterの以下の機能を再設計の対象とします。 ユーザを表示する ツイートする ツイートに返信する 引用ツイートをする リツイートする フォローする フォロー一覧を表示する フォロワー一覧を表示する リストを作成する リストにユーザを追加する リストからユーザを削除する リスト一覧を表示する リストを表示する 2. URL設計 Method Path Description GET users/{user_id} 特定のユーザを表示 POST tweets ツイートを作成する(返信、引用ツイート含む) POST retweets 特定のツイートをリツイートする POST followings 特定のユーザをフォローする GET followings ログイン中のユーザのフォロー一覧を表示 GET followers ログイン中のユーザのフォロワー一覧を表示 GET users/{user_id}/followings 特定のユーザのフォロー一覧を表示 GET users/{user_id}/followers 特定のユーザのフォロワー一覧を表示 POST lists リストを作成する POST lists/{list_id}/members 特定のリストに特定のユーザを追加する DELETE lists/{list_id}/members/{user_id} 特定のリストから特定のユーザを削除する GET lists ログイン中のユーザのリスト一覧を表示 GET users/{user_id}/lists 特定のユーザのリスト一覧を表示 GET lists/{list_id} 特定のリストを表示 3. 解説 3-1. ツイートする(返信・引用ツイート含む) Method Path Description POST tweets ツイートを作成する(返信、引用ツイート含む) ツイートをするのは常にログインユーザのため、URIにログインユーザのidは含めない 返信の場合、リクエストのボディに返信先のツイートの情報を含める 引用ツイートの場合、リクエストのボディに引用するツイートのidを含める 3-2. リツイートする Method Path Description POST retweets 特定のツイートをリツイートする リツイートをするのは常にログインユーザのため、URIにログインユーザのidは含めない リクエストのボディにリツイートするツイートのidを含める 3-3. フォローする Method Path Description POST followings 特定のユーザをフォローする フォローを実行するのは常にログインユーザのため、URIにログインユーザのidは含めない リクエストのボディにフォローするユーザのidを含める 3-4. リストにユーザを追加する Method Path Description POST lists/{list_id}/members 特定のリストに特定のユーザを追加する リストへのユーザ追加を実行するのは常にログインユーザのため、URIにログインユーザのidは含めない リクエストのボディにリストに追加するユーザのidを含める 3-5. リストを表示する Method Path Description GET lists/{list_id} 特定のリストを表示 リストを一意に特定できれば、そこからリストを所有するユーザはわかるため、users/{user_id}/lists/{list_id}とする必要はない 【参考】 ...