インターネットで一番かわいい猫をランク付けしている会社があるとしましょう。
/cats/
ユーザーに最新のかわいい猫を提供するリソースを提供します。
ユーザーは、支払いを行っていないか登録していない場合、上位3匹の猫のみを取得できます。337ドルを支払ってログインしている場合は上位10匹の猫、1337ドルを支払ってログインしている場合は上位100匹の猫。リクエストを行うときに「ユーザーID」があります。
要するに、消費者は/cats/
「ユーザーランキング」に基づいて異なる数の猫を取得します。消費側にはユーザー識別子がありますが、消費側にはユーザーレベルの明示的な表現はありません。リクエストを行うときにサブスクリプションをアップグレードできることをユーザーに通知したいと思います。つまり、3匹の猫と3匹の猫しか提供していないため、3匹の猫を区別する必要があります。これは、ユーザーレベルで許可されているためです。
消費者が十分な特権を持っていないためにリソースを制限し、それが制限されていることを区別するためのベストプラクティスは何ですか?
クライアントは、ランキングをアップグレードできるかどうかをどのように知っていますか?それはので、彼らは限られたリソースを持っている彼らは権限がありません。ここでのベストプラクティスは何ですか?
これは実際のケースを大幅に単純化したものであることに注意してください。また、単に明確にするために-読んでいただければ幸いです。
更新:
検討したオプションは次のとおりです。
- クライアントに一度ユーザー権限オブジェクトを保存し、アカウントのログインまたはアップグレードが実行されたときにのみ照会します。
null
存在することを示す値をJSONで渡しますが、実際には何も転送されませんでした。したがって、3匹の猫を持つユーザーの場合、10匹の猫は["Garfield","Sylvester","Puss in Boots",null*7]
- リソース許可ペアを渡す
{cats:["Whiskers","Fluffy","Socks"],authCount:3}
一番かわいい猫を可能な限り最良の方法で配達するために、初めてこれを正しく行いたいと思います。