Я разрабатываю REST api с Flask. Одна из моих конечных точек должна поддерживать фильтрацию и сортировку. Допустим, у меня есть эти поля: категория, цвет, серьезность.
Допустим, я хочу получить все элементы в категории 'a'или' b 'и черного цвета и отсортировать их по severiy asc и color desc.
для сортировки я увидел, что добавление «+» или «-» - это способ установить порядок.
1. Как лучше всего декодировать выражение фильтра? предполагая, что я хочу использовать метод строки запроса для передачи параметров в запросе получения (или лучший вариант - использовать параметры json-body для этой необходимости)
2. Как лучше всего разобрать это в фреймворке?
my_ip / items? sort = + severity & sort = -color & filter = ???





Эта статья дает несколько хороших советов о том, как это сделать: Пагинация, фильтрация и сортировка
For example:
- Only sort keys specified:
sort=key1,key2,key3key1is the first key,key2is the second key, etc.- Sort directions are defaulted by the server
- Some sort directions specified:
sort=key1:asc,key2,key3- Any sort key without a corresponding direction is defaulted
key1is the first key (ascending order),key2is the second key (direction defaulted by the server), etc.- Equal number of sort keys and directions specified:
sort=key1:asc,key2:desc,key3:asc- Each key is paired with the corresponding direction
key1is the first key (ascending order),key2is the second key (descending order), etc.