Код Middle FastAPI и Pydantic обновлено
Разбор и проверка query-параметров
Условие
Напишите parse_query(qs): строка запроса вида limit=10&offset=20&sort=-created&tag=a&tag=b. Правила как в эндпоинте FastAPI: limit целое 1-100, по умолчанию 20; offset целое от 0, по умолчанию 0; sort одно из created, -created, price, -price, по умолчанию -created; tag список (может повторяться), по умолчанию пустой. Верните {"ok": True, "params": {...}} или {"ok": False, "errors": [имена полей с ошибками в порядке limit, offset, sort]}.
Примеры
parse_query("limit=10&offset=20&sort=-price&tag=a&tag=b") // {"ok":true,"params":{"limit":10,"offset":20,"sort":"-price","tag":["a","b"]}}
parse_query("") // {"ok":true,"params":{"limit":20,"offset":0,"sort":"-created","tag":[]}}
parse_query("limit=0") // {"ok":false,"errors":["limit"]}
Как подойти
Подсказки: 2
urllib.parse.parse_qsвернёт списки значений.- Сортировка по белому списку.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.