ASP.NET Core 2.0: REST API сортировка и фильтрация?
Разрабатываемое мной приложение разбито на 2 уровня:
1. Презентационный (ASP.NET Core)
2. Уровень доступа к данным (CQRS, Dapper).
Модели первого уровня - ресурсы. Модели второго - DTO, которые заполняются данными из БД.
Названия свойств этих моделей могут отличаться.
Вопрос: как организовать сортировку и фильтрацию данных? Под фильтрацией я подразумеваю не только удаление свойств в ответе (что можно реализовать с помощью middleware), но и предотвращение получения некоторых полей из БД. Повторюсь, названия свойств у моделей разные.
Пример того, как все должно работать:
Допустим есть ресурс "Новость" (id, title, text, created_at, images[]).
Пользователь отправляет запрос GET /news?order_by=title, -created_at&fields=id, title. Уровень доступа к данным должен выполнить следующее: SELECT id, title FROM news ORDER BY title ASC, created_at DESC. Т.к. в списке полей не было images, уровню доступа к данным не пришлось делать JOIN news_images.