Django Rest API Cache с помощью Radis и поиск предложений

Проблема

У меня есть бэкенд с Django (Wagtail CMS) и фронтенд с react. Я использую их в качестве новостного сайта. Я новичок в Django, а мой коллега по команде управляет фронтендом. Я предоставляю им стандартный API Wagtail с некоторой настройкой (я раскрыл все необходимые поля в BaseAPIView). В моем API в первый раз было 25 записей в блоге, а теперь их 60. В первый раз время загрузки API было 1,02 секунды, а теперь время загрузки API составляет 1,69 секунды. Я боюсь, что произойдет, когда количество постов достигнет 5000+! Потому что я ничего не ограничиваю в API.

План

Я планирую использовать radis кэш для API. Но я не могу понять, что я должен установить в представлениях API! потому что мое представление API следующее.

#api.py

from wagtail.api.v2.views import PagesAPIViewSet,BaseAPIViewSet
api_router = WagtailAPIRouter('wagtailapi')

class ProdPagesAPIViewSet(BaseAPIViewSet):
    renderer_classes = [JSONRenderer]
    filter_backends = [FieldsFilter,
        ChildOfFilter,
        AncestorOfFilter,
        DescendantOfFilter,
        OrderingFilter,
        TranslationOfFilter,
        LocaleFilter,
        SearchFilter,]
    meta_fields = ["type","seo_title","search_description","first_published_at"]
    body_fields = ["id","type","seo_title","search_description","first_published_at","title"]
    listing_default_fields = ["type","seo_title","search_description","first_published_at","id","title","alternative_title","news_slug","blog_image","video_thumbnail","categories","blog_authors","excerpt","content","content2","tags","story_type"]
    nested_default_fields = []
    def get_queryset(self):
        return super().get_queryset().filter(story_type='Story').order_by('-first_published_at')
    name = "stories"
    model = AddStory

api_router.register_endpoint("stories", ProdPagesAPIViewSet)

Решит ли добавление кэша radis в API проблему загрузки или мне следует добавить кэш в front end?

Я пытался добавить пагинацию в API. У меня ничего не получилось, но если я смогу добавить пагинацию, будет ли это лучше?

Поиск вопросов

Что будет лучше для меня добавление radis cache или добавление пагинации? Если в моем вопросе есть проблемы, пожалуйста, не голосуйте, а лучше прокомментируйте, что я упустил и как мне лучше спросить! Спасибо.

Вернуться на верх