RESTful?なバリデーションを考える
英語とRESTが同時に勉強できるので「http://tech.groups.yahoo.com/group/rest-discuss/」を読み始めた。
で、さっそく興味深いスレッドを見つけた。
ユーザ名、メールアドレス、パスワードなんかのバリデーションをどう設計するか?という問題。
たとえばユーザ名については、議論中、下記のような提案がなされている。
- 「HEAD /users/{username}」へのリクエストで処理する
- 許容できない文字列だったら「400 Bad Request」を返す
- 既に使われているユーザ名だったら「200 OK」を返す
- 使用可能だったら「404 Not Found」を返す
な、なるほど、そういう考え方もありますか…。
で、スレ主が「じゃあパスワードの場合は?」と切り返し、議論がストップした模様(!)。
私の意見はどうかというと、RESTful本の「5.5.3 アルゴリズムリソースに対するクエリ変数の使用」と同じように「GET /varidate?username=hogehoge」でバリデーション結果を返せば良いだけなんじゃないかと思うわけですが、いつ気が変わるか自信がありません。「男心と秋のパンまつり」って奴です。