Есть ли рекомендуемый способ уведомить клиента о том, что набор результатов из их запроса API может быть ограничен из-за ограничений авторизации? - PullRequest
0 голосов
/ 17 апреля 2019

Пример:

Скажем, база данных содержит 20 Group объектов.

1) Клиент отправляет запрос API GET к конечной точке /groups с действительным токеном аутентификации. Намерение клиента - получить список всех Group объектов в базе данных.

2) Сервер проверяет авторизацию пользователей API. Пользователю разрешен доступ только к Group объектам, с которыми они связаны, которым принадлежат или которым владеют.

3) Сервер извлекает все Groups, которые удовлетворяют этому критерию в (2). Скажем, это касается 8 Group объектов. Сервер форматирует результаты и отправляет ответ пользователю API.

Вопрос: Существует ли стандартный или рекомендуемый способ «REST API», позволяющий пользователю узнать, что он видит только 8 из 20 возможных Group объектов? В моем приложении было бы удобно отображать в клиентском приложении «вы просматриваете 8 из 20 групп из-за вашего уровня безопасности» или «Потенциально ограниченный набор результатов безопасности».

Кажется, что ни один из кодов ответов HTTP не допускает этого - 206 PARTIAL CONTENT, если пользователь ЗАПРОСИЛ частичное содержимое, а сервер говорит: «Да, я даю вам частичное содержимое, есть еще что дать».

Создание пользовательского формата тела ответа для API достаточно просто, но я хочу проверить, существуют ли какие-либо принятые методы, или это просто считается нет-нет. Возможно, у меня была еще одна идея, предусматривающая вариант GET /groups?count=true, при котором сервер возвращал бы истинное количество Group объектов в базе данных вместе с ограниченным набором результатов Group объектов.

...