Есть ли способ скрыть параметры запроса url при использовании GET-запроса?

У меня есть страница на сайте с множеством фильтров/настроек, все они хранятся в JSON объекте. И эта страница отображает живые данные, поэтому производительность очень важна.

В настоящее время я отправляю POST-запрос для получения данных, но я знаю, что это не лучшее решение и нарушает принципы REST.

Итак, есть плюсы и минусы для обоих решений:

GET

Плюсы:

  • Может использовать кэш (хорошо для производительности, что важно)
  • Хорошо работает с REST
  • Понятно для пользователя, он может видеть все свои настройки прямо в url.

Против:

  • При таком количестве фильтров и настроек конечный url может стать очень длинным, это не то, что я хочу, и я думаю, что это плохо для пользователей.

POST

Плюсы:

  • Чистый url, не отвлекающий пользователей
  • Я могу просто сделать queryset.filter(**request.data.items()), это не совсем безопасно
  • .

Против:

  • Невозможно использовать кэширование

Итак, мой вопрос в том, какой способ выбрать, и если это GET, могу ли я как-то скрыть строку запроса или хэшировать ее и декодировать на бэкенде?

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