Во-первых, я хочу сказать, что эта статья будет посвящена функции, которую я разработал и упаковал в Автофильтр. Эта логика использует генераторы исходного кода для создания объектов фильтра, и сгенерированные типы обеспечивают безопасность с помощью строгого кодирования типов, а также сохраняют ваш API в спецификациях открытого API. Сделаем образец.

Создайте веб-API Asp.Net Core. Убедитесь, что вы установили флажок Включить поддержку OpenAPI. Я использовал MyAwesomeApp имя при генерации.

Мы будем использовать по умолчанию WeatherForecastController и объект WeatherForecast вместо подключения к базе данных. Также вы можете попробовать с базой данных.

Затем добавьте в проект пакет AutoFilterer.Generators из NuGet. После успешной установки найдите WeatherForecast.cs и добавьте к нему атрибут [GenerateAutoFilter].

Когда вы добавите атрибут GenerateAutoFilter, ваш проект будет иметь еще один тип - {ClassName}Filter. В этой ситуации ваш проект имеет WeatherForecastFilter тип. Вы можете начать использовать его напрямую, без написания специального кода.

Найдите WeatherForecastController.cs и примените фильтр с использованием автоматически созданного типа WeatherForecastFilter.

Обратите внимание: если вы используете Visual Studio, intellisense может не сразу ответить Генераторы исходного кода, но вы увидите все сгенерированные типы после повторного открытия Visual Studio.

Запустите приложение, даже если IDE сообщает, что такого типа, как WeatherForecastFilter, не существует, и вы увидите следующую конечную точку в пользовательском интерфейсе Swagger:

Вот и все, ваша фильтрация готова к использованию. Кстати, обратите внимание, данные WeatherForecast создаются случайным образом, поэтому разбивка на страницы не будет работать должным образом в этом примере, потому что все данные создаются заново при каждом запросе.

Если вас интересует фильтрация данных без кодирования, вам следует прочитать остальную документацию и поставить звезду на github :)