RESTful принципы вопрос - PullRequest
4 голосов
/ 27 мая 2010

Мой умный коллега по работе задал мне вопрос, что я не знал, как ответить, и я хотел бы представить его миру.

Если конечная точка RESTful использует аутентификацию на основе токенов, то есть токен, основанный на времени, необходим для доступа к ресурсу, и этот токен истекает через некоторое время, будет ли это нарушать принцип RESTful? Другими словами, если срок действия одного и того же URL истекает через определенное время, то ресурс возвращает другой ответ в зависимости от того, когда его запрашивали, нарушает ли это REST?

Ответы [ 4 ]

3 голосов
/ 27 мая 2010

Нет, ваш сценарий не нарушает никакого спокойного принципа, который я могу придумать. Вы, кажется, путаете запрос, возвращающий другой ресурс, и запрос, получающий другой ответ.

В вашем сценарии я ожидаю, что после истечения срока действия токена сервер вернет 401, и клиент инициирует какой-либо обмен аутентификацией для повторной проверки пользователя. После повторной проверки сервер должен вернуть намеченный ресурс.

Есть много случаев, когда запрос может иметь совершенно разные ответы. 403 Forbidden, 410 Gone являются примерами.

1 голос
/ 27 мая 2010

Ваш дизайн не нарушает ограничения REST, но вы должны быть осторожны, чтобы правильно использовать HTTP. Если ваши ресурсы предназначены для просмотра только определенным пользователем, этот пользователь должен пройти аутентификацию с использованием HTTP-аутентификации. Это скажет публичным кешам не кэшировать представления ресурса (что они обычно делают).

Таким образом, даже если вы хотите, чтобы URL-адрес был известен только определенному пользователю, убедитесь, что этот пользователь также аутентифицирует себя, используя правильные заголовки HTTP.

Jan

1 голос
/ 27 мая 2010

Срок действия прав доступа пользователя / приложения к URL-адресу может истечь, но это не означает, что срок действия URL-адреса истекает. В больших реальных системах аутентификационная часть API может обрабатываться другим продуктом, защищая настоящий API от атак, неавторизованных пользователей и т. Д. Поэтому RESTful API по-прежнему следует остальным принципам.

0 голосов
/ 27 мая 2010

Ресурсы часто дают разные ответы в зависимости от того, когда они запрашиваются. Вот что происходит, когда фактические ресурсы меняются со временем. Запрос ресурса этой страницы (например) через неделю, скорее всего, даст другие ответы, чем при первом прочтении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...