2014-01-21 6 views
0

В RESTful api запрос, подобный GET/api/resources/resourceID, может быть кэширован. Но в следующий раз, когда один и тот же ресурс будет доступен, кешированное значение должно быть возвращено только владельцу ресурса (например, запрос должен быть разрешен). Можно ли использовать это кэширование и предоставлять данные только авторизованным пользователям?Использование кеширования в REST

Спасибо!

ответ

0

Вы можете указать идентификатор пользователя в ключе кеша. Давайте предположим, что ресурс отличается в зависимости от того или не зарегистрирован пользователь в примере ключей кэша (есть много способов форматирования их):.

For non-logged in: 
"resource:{resourceID}" (if you are storing more than just resources) 
"{resourceID}" (if your cache stores only resources) 

For logged-in user: 
"resource:{resourceID}:{userID}" or "{resourceID}:{userID}" 

Вы должны выбрать разделитель («:» в этот случай), которые не могут отображаться ни в одной из ваших данных.

Еще одна вещь, о которой стоит подумать, - это то, как вы стареете из очереди, - вы не хотите, чтобы закончились промахи в кеше, потому что ваш кеш заполнен данными, специфичными для пользователя, которые больше никогда не будут использоваться.

Смежные вопросы