/login または /register リソースを RESTful に設計しますか? 質問する

/login または /register リソースを RESTful に設計しますか? 質問する

私は Web アプリを設計していたのですが、RESTful Web サービスとして API をどのように設計すべきか考えるために立ち止まりました。今のところ、私の URI のほとんどは汎用的で、さまざまな Web アプリに適用できる可能性があります。

GET  /logout   // destroys session and redirects to /
GET  /login    // gets the webpage that has the login form
POST /login    // authenticates credentials against database and either redirects home with a new session or redirects back to /login
GET  /register // gets the webpage that has the registration form
POST /register // records the entered information into database as a new /user/xxx
GET  /user/xxx // gets and renders current user data in a profile view
POST /user/xxx // updates new information about user

SO と Google でいろいろ調べてみた結果、自分がかなり間違ったことをしているような気がします。

から始めますが/logout、おそらく私は本当に何も知らないので、を要求し、セッションを破棄してからリダイレクトするGET方が適切かもしれません。 という用語はそのままにしておくべきでしょうか?POST/logoutGET/logout

/loginとについてはどうでしょうか。を に/register変更することもできますが、より深刻な問題がある場合、それによってサービスの基本的な動作が変わることはありません。/register/registration

私は/userリソースを公開していないことに気付きました。おそらく、それを何らかの方法で利用できるかもしれません。たとえば、ユーザーを例に挙げますmyUser

foo.com/user/myUser

または

foo.com/user

エンド ユーザーは、URI に余分な冗長性を必要としません。しかし、視覚的に魅力的なのはどちらでしょうか?

SO でこの REST ビジネスに関する他の質問がいくつかあることに気付きましたが、可能であれば、ここで説明した内容について何らかのアドバイスをいただければ幸いです。

ありがとう!

アップデート:

以下の点についてもご意見を伺いたいです。

/user/1

/user/myUserName

ベストアンサー1

RESTfulはURL構築のガイドラインとして使用でき、セッションそしてユーザーリソース:

  • GET /session/newログインフォームのあるウェブページを取得します
  • POST /sessionデータベースに対して資格情報を認証する
  • DELETE /sessionセッションを破棄し、/ にリダイレクトします
  • GET /users/new登録フォームのあるウェブページを取得します
  • POST /users入力された情報を新しい/user/xxxとしてデータベースに記録します
  • GET /users/xxx// 現在のユーザーデータを取得してプロフィールビューに表示します
  • POST /users/xxx// ユーザーに関する新しい情報を更新します

これらは複数形または単数形にすることができます (どちらが正しいかはわかりません)。私は通常、/usersユーザー インデックス ページ (予想どおり) や、/sessionsログインしているユーザーを確認する (予想どおり) ために使用しています。

URL で数字ではなく名前を使用するのは/users/43/users/joe通常、技術的な要件ではなく、ユーザーや検索エンジンに対してよりフレンドリーにしたいという願望によるものです。どちらでも構いませんが、一貫性を保つことをお勧めします。

登録/ログイン/ログアウト または を使用するとsign(in|up|out)、RESTful の用語ではうまく機能しないと思います。

おすすめ記事