Скажімо, у мене є компанія, яка займає рейтинг симпатичних котів в Інтернеті.
Я пропоную ресурс, на/cats/
якому користувачі надають останнім, милим чарівним котам.
Користувачі можуть отримати лише 3 найкращих котів, якщо вони взагалі не заплатили або зареєструвались. Топ-10 котів, якщо вони заплатили 337 доларів і ввійшли в систему, і перші 100 котів, якщо вони заплатили 1337 доларів і ввійшли в систему. У мене є "ідентифікатор користувача" під час подання запиту.
Коротше кажучи, споживачі /cats/
отримують різну кількість котів, виходячи з рейтингу користувачів . У мене є ідентифікатор користувача на споживчому кінці, але я не маю явного представлення рівня користувача на споживчому кінці. Хочу повідомити користувачів, що вони можуть оновити свою підписку під час подання запиту. Тобто мені потрібно розрізняти 3 котів, оскільки я пропоную лише 3 котів та 3 котів, тому що це дозволив рівень користувача .
Яка найкраща практика розмежування обмеження ресурсу, оскільки споживач не має достатніх привілеїв та його обмеження, тому що саме це має споживач?
Як клієнт знає, чи зможе оновити свій рейтинг? Тобто вони отримали лише обмежений ресурс, оскільки вони не мають дозволів. Яка тут найкраща практика?
Зауважте, це грубе спрощення фактичного випадку. Крім того, просто для уточнення - читання цінується.
Оновлення:
Ось варіанти, які ми розглянули:
- Зберігання об’єктів дозволів користувача один раз на клієнті, запит на нього лише тоді, коли здійснюється вхід або оновлення облікового запису.
- Передача
null
значень у JSON, що вказує на те, що вони існують, але фактично нічого не передано. Тож 10 котів для користувача з 3 кішками могли бути["Garfield","Sylvester","Puss in Boots",null*7]
- Проходження пари дозволу на ресурс
{cats:["Whiskers","Fluffy","Socks"],authCount:3}
Я хотів би зробити це правильно в перший раз, щоб доставити милих котів найкращим чином, і ми хотіли б і хотіли б