Контест Middle ASP.NET Core обновлено
Трассировка конвейера middleware
Условие
Смоделируйте конвейер middleware. Каждый элемент одного из трёх видов:
name pass: пишетname>, вызывает следующий, после возврата пишет<name;name block PREFIX CODE: если путь начинается сPREFIX, пишетname!и завершает запрос с кодомCODE, не вызывая следующий; иначе ведёт себя какpass;name endpoint PATH: если путь в точности равенPATH, пишетname#и отвечает 200; иначе молча передаёт дальше (как маршрутизация, не нашедшая совпадения).
Если запрос дошёл до конца конвейера, ответ 404.
Ввод: n (n ≤ 30) элементов, затем q (q ≤ 3000) путей.
Вывод: для каждого пути журнал через пробел, затем = CODE.
Пример
4
log pass
auth block /admin 401
health endpoint /health
api endpoint /api
3
/health
/admin/users
/missing
log> auth> health# <auth <log = 200
log> auth! <log = 401
log> auth> <auth <log = 404
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.