Я разрабатываю API гипермедиа, да, API RESTful, с гипертекстовым ограничением.RESTful HTTP: отображение разных представлений двум пользователям в том же URI
Каждый пользователь системы получит доступ к системе, используя свои собственные учетные данные, поэтому каждый запрос, который мы обрабатываем, проходит проверку подлинности и авторизацию. Каждый пользователь обычно имеет определенные учетные данные, чтобы они могли иметь разные разрешения (например, ни одного, читать, читать/писать) в каждой коллекции.
Мы хотим, чтобы клиент был загрунтован с одним URI, с которого он начинается, который, возможно, был бы документом служб атома или иерархией (протяженностью ассемблерной иерархии) коллекций атомов.
Мой вопрос в основном должен видеть, что пользователи видят разные представления для одного и того же URI или должны быть направлены на разные URI на основе их разрешений?
Например: Пользователь A и Пользователь B имеют разные разрешения в системе. Они регистрируются с разными учетными данными, с тем же самым начальным URI. В случае успешного ответа может быть одним из следующих 2:
- 200 OK, и пользователь A видит что-то отличное от пользователя B на том же URI
- 302 (или другого перенаправления) каждому пользователю, например,/Конечная точка/ПользовательА (который они владеют)
Компромисс между кэшированием, конечно, минимальна, поскольку ресурсы кэшируются только клиентом, а не через посредников, но есть компромисс для видимости тоже (URI содержит (aythenticated) Идентификатор пользователя). Наконец, появилась возможность позволить пользователю A (или суперпользователю) видеть, что видит пользователь B.
Я не спрашиваю, что делает Twitter или Facebook, меня больше интересует то, что специалисты REST должны сказать об этом.
Верно, что оба они одинаково важны и могут быть легко выполнены в рамках ограничений REST. Я предполагаю, что вопрос должен был включать больше «ресурсов для каждого пользователя», но это могло бы покрасить ответы: некоторые ресурсы действительно для каждого пользователя: домашняя страница (например, домашняя страница твиттера или facebook) довольно отличается от пользователя для пользователя, но каждый ресурс (например, страница профиля щебета или fb) почти одинаковый. – mogsie
@mogsie Из-за социальной природы сайтов, таких как twitter и facebook, концепция пользователя - это очень ресурс первого класса. В тех случаях я считаю, что каждая домашняя страница должна иметь свой собственный ресурс. например 'http://twitter.com/user/darrelmiller/home' –
Итак, если бы мы применили это к API, вы бы ввели URL/user/darrelmiller/home в клиент? или вы будете вводить все клиенты с тем же/домашним ресурсом, и/home всегда перенаправляет/user/darrelmiller/home после аутентификации? – mogsie