Django REST Cache Invalidation - PullRequest
       27

Django REST Cache Invalidation

0 голосов
/ 17 апреля 2020

У меня есть Django проект и представление API, реализованные с помощью структуры Rest. Я кеширую его с помощью декоратора @cache_page, но мне нужно реализовать аннулирование кэша, и я не вижу, как это сделать - нужен ли мне собственный декоратор?

Проблема: представление проверяет доступ к API-ключу и кэширует его из предыдущей проверки доступа, но, если пользователь изменит API-ключ до истечения срока действия кэша, представление вернет статус OK для ключ, который больше не существует.

1 Ответ

0 голосов
/ 17 апреля 2020

Да, вам понадобится декоратор кэша, который учитывает аутентификацию / пользовательский контекст. cache_page() работает только для запросов GET и ключей, основанных только на URL-адресе.

Хотя еще лучше,

  1. Не используйте кеш, пока вы не уверены, что вам нужен one
  2. Если вам это нужно (подумайте о том, почему; аннулирование кэша - одна из двух сложных вещей), используйте более детальный кэш в своем представлении, а не cache_page().
...