1

私は Laravel を使用して、素晴らしいルーティング機能を持つ API を構築しています。

トークンが表すユーザーを表すことを意味する「私」を渡すことができるように、ユーザー ID を渡すことができる場所ならどこでもサポートしたいと考えています。

例えば

/users/1234                  => /users/me
/competitions?user=1234      => /competitions?user=me
/users/1234/threads/comments => /users/me/threads/comments

クエリ文字列については、「me」を内部的に置き換えることを処理しますAuth::user()->idが、「me」がパスの一部であるルートについては、それらのルートをキャプチャし、「me」をからの出力に置き換えてからAuth::user()->id3xx リダイレクトを行うことを考えています変更されたルート。

ここで2つの質問です。

1) これは実行可能/良いアイデアですか、それとも特定の /users/currentUserInformation エンドポイントを用意して、クライアントが現在のユーザー ID を取得できるようにする必要がありますか?

2) 要件に適合する 3xx コードはどれですか? 「代わりにここからこの情報を要求する必要があります」ではなく、単に「必要な情報は実際にはここから来ていますが、どちらもこの情報を取得することができます」(別名キャッシュイコール)です。

4

1 に答える 1

1

1) クライアントが認証する必要がある場合、クライアントは現在のユーザーを既に知っている必要があります。なぜあなたがそれを追跡して彼らに返す必要があるのか​​ 、それを調べる魔法のショートカットを提供する必要があるのか​​\u200b\u200bわかりません。本当にこれを行いたい場合は、現在認証されているユーザー用に別のリソースをお勧めします。

2) 300 の多肢選択は、あなたが得ようとしているのと同じくらい近いようです。または、おそらく 303 See Other です。あなたが説明していることは、非RESTfulと見なされるリソースに対して複数の正規表現を持つように非常によく似ています。

于 2013-09-11T10:37:59.083 に答える