[解決済み] RESTアプリケーションで現在ログインしているユーザーのURIを設計する
質問
REST APIで、現在ログインしているユーザーを取得するためのURIが必要です。通常、私は
GET
を使いますが、クライアントはユーザのIDを知りません。
私は以下の解決策を見つけました。
-
ユーザー名で
このソリューションでは、ユーザーのIDの代わりにユーザー名を使用します。
例
-
Bitbucket REST API
:
GET /user/{userSlug}
-
Bitbucket REST API
:
-
自前のリソースで
このソリューションでは、ユーザー用のリソースが1つ、ログインしたユーザー用のリソースが1つ追加されています。
例を挙げます。
-
JIRA REST API :
GET /myself
-
GitHub REST API :
GET /user
-
Stack Exchange REST API :
GET /me
-
-
シンボリックリンクあり
このソリューションでは、ユーザーのIDのシンボリックリンクがあります。
例
-
Confluence REST API
:
GET /user/current
-
Confluence REST API
:
-
フィルター付き
このソリューションでは、ユーザー名に対するフィルタを使用します。
例
-
JIRA REST API
:
GET /user?username={username}
-
JIRA REST API
:
どれが最もRESTfulですか?長所と短所は何ですか?
どのように解決するのですか?
それはあなた次第です。 どのアプローチもRESTの観点からは全く問題ありません。
Roy Thomas Fieldingの論文によると * , 名前を付けることができるすべての情報は、リソースになることができます。 :
<ブロッククオートRESTにおける情報の重要な抽象化は リソース . 文書や画像、時間サービス(たとえば、"今日のロサンゼルスの天気)、他のリソースのコレクション、非仮想オブジェクト(たとえば、人)など、名前を付けることができるあらゆる情報がリソースとなりえます。言い換えれば、著者がハイパーテキストで参照する対象となりうるあらゆる概念は、リソースの定義に当てはまらなければならない。リソースとは、実体の集合に対する概念的なマッピングであり、ある特定の時点でマッピングに対応する実体ではない。[...]
を使用する場合
/me
,
/users/me
,
/users/myself
,
/users/current
と似たようなロケータがありますが、これは
認証されたユーザ
を特定し、それは常に
概念
の
認証されたユーザー
の、どのユーザが認証されたかに関係なく
より柔軟に対応するために
/users/{username}
.
ちなみに、似たような状況は マジック(私/自分)のリソース識別子を使うことは、RESTの原則に反するのでしょうか?
* REST に興味があるなら 第 5 章 は必読の論文です。
関連
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] RESTリソースの命名規則はSingularとPluralのどちらを使用すべきですか?
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み] RESTアプリケーションはステートレスであることが前提である場合、セッションはどのように管理するのですか?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み】REST API - ファイル(画像)処理 - ベストプラクティス
-
[解決済み】REST API 404。不正な URI、またはリソースの欠落?
-
[解決済み] RESTでトランザクション?
-
[解決済み] Amazon S3 ファイルのダウンロード名を変更する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SOAPとRESTの比較(相違点)
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] 検索のためのRESTfulなURL設計
-
[解決済み] RESTfulな方法でリソースのサーバーサイドメソッドを呼び出す
-
[解決済み] REST - ボディにIDを入れるかどうか?
-
[解決済み] NetflixやTwitterのようなWebサービスにはRESTとSOAPのどちらを使うべきか?[クローズド]
-
[解決済み] gRPC(HTTP/2)はREST with HTTP/2より速いのか?
-
[解決済み] バージョン管理されたAPIのコードベースはどのように管理されていますか?
-
[解決済み] RESTful - DELETE レスポンスボディに含まれるべき内容
-
[解決済み] RESTfulサービス - WSDLに相当するもの