2017-03-16 6 views
0

私はちょっと混乱しています。ユーザーのために自分のREST URIを定義する方法を理解する上で助けが必要です。Spring REST URI:ユーザと管理者を区別する方法

要件:私は以下のような何かを達成したい:/ユーザー/ ME /アドレス:

  1. は、URIをGETこのAPIは、クライアント(iOS版)によって呼び出されます。ユーザの詳細は認証トークンから取得され、返されたオブジェクトはいくつかのフィールドを除外します。このAPIは、顧客ケアWEBポータルによって呼び出され、返されたオブジェクトは、これを実現するために、すべてのフィールド

を持つことになり、私は二つの方法URIと一つに曝さ:/ /ユーザー/ {userIdを}アドレスは:

  • は、URIをGET '/ users/me/addresses'と '/ users/{userId}/addresses'と入力します。しかし、SpringはAPIの両方を同じものとみなし、それを許可しません。だから私は自分の目標を達成するための代替アプローチを探しています。

  • +0

    悪い解決策のようです。ユーザーIDが「私」の場合はどうなりますか?ヘッダーに「userId」を渡すか、ユーザーが顧客ケア・エージェントであるかどうかをチェックする方法を検討してください。 – TedTrippin

    答えて

    0

    正規表現を使用すると、2つのマッピングを異なるものとして考えることができます。 the documentationを参照してください。

    @RequestMapping("https://stackoverflow.com/users/{userId:\\d+}/addresses") 
    
    +0

    返事をありがとう。それがどのように問題を解決するかはわかりません。 Springはまだ両方のAPIを同じとみなします – Suchit

    +0

    いいえ、そうではありません。それは全体のポイントです。/users/me/addressesは '/ users/{userId:\\ d +}/addresses'ともう一度一致しないためです。それは '/ users/{userId}/addresses'とマッチしました。 –

    関連する問題