Какие есть варианты фильтрации значений Enums из документации Swagger?

Я использую Django с drf-spectacularпакет для создания документации Swagger. Мне было интересно, есть ли лучший подход для фильтрации некоторых значений из раздела Enum внутри схемы. Прямо сейчас я сделал это с помощью кастомного хука preprocess_schema_enums

Перечисления указываются как поле в файле модели

hook.py

      def preprocess_schema_enums(result, generator, request, public):
  excluded = ['value1', 'value2']
  enums_response = result['components']['schemas']['CustomEnum']['enum']
  filtered = [res for res in enums_resoinse if res not in excluded]
  result['components']['schemas']['CustomEnum']['enum'] = filtered
  return result

1 ответ

Решение

Вы просите об индивидуальном поведении, которое отличается от того, что на самом деле делает DRF.

Нет такого количества переключателей и настроек, которые могли бы удовлетворить особые требования каждого пользователя. Хуки постобработки были разработаны именно для таких нестандартных случаев использования.

Итак, вы используете drf-Spectrum именно так, как задумано.

Другие вопросы по тегам