Session Resource パターン

PUT /session (→ログイン)
DELETE /session (→ログアウト)

どのようなパターン?

認証のセッション自体をリソースととらえる。Railsでいう「モデル」ではないリソースの典型例。

Railsの認証Gemを使った設計例ではすでに一般的に採用されている。

  • Devise
  • Sorcery
  • OmniAuth

リソースの分類からみる

上記の例だと単数リソースで実現されている。さらに自分に紐付いているものであるとみなして、

PUT /my/session (→ログイン)
DELETE /my/session (→ログアウト)

とすると Private Resource パターンとなる。ただしログイン前から /my が存在するのは少し不自然かもしれない。

コレクションリソースを使って

POST /sessions (→ログイン)
DELETE /sessions/{id} (→ログアウト)

と実現することもできるが、こうした場合のidは何なのかよくわからない。