Можно ли кэшировать результаты API Wagtail или установить заголовок Cache-Control? - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь кэшировать одно из представлений API от Wagtail. Я искал способы кеширования Django REST и нашел способ, введя Cache-Control в ответ. Как видно здесь: http://www.django -rest-framework.org / api-guide / response / # standard-httpresponse-attribute

Этот метод не будет работать с Wagtail, хотя сериализатор является частью Wagtail. Есть ли способ, которым я могу это сделать?

1 Ответ

0 голосов
/ 14 сентября 2018

Конечные точки Wagtail API определены в wagtail.api.v2.endpoints (и других местах, таких как wagtail.images.api.v2.endpoints и могут быть разделены на подклассы для обеспечения настраиваемого поведения, такого как установка дополнительных заголовков в ответеНапример, чтобы добавить заголовок Cache-Control к подробному представлению PagesAPIEndpoint:

from wagtail.api.v2.endpoints import PagesAPIEndpoint

class CachedPagesAPIEndpoint(PagesAPIEndpoint):
    def detail_view(self, request, pk):
        response = super().detail_view(request, pk)
        response['Cache-Control'] = 'no-cache'
        return response

Затем, в вашем api.py , зарегистрируйте свой пользовательский CachedPagesAPIEndpoint вместо стандарта PagesAPIEndpoint.

...