Код Junior HTTP, WSGI и ASGI обновлено

Мини-WSGI-приложение с роутингом

Условие

Напишите WSGI-приложение app(environ, start_response): GET /health отвечает 200 OK с телом ok; GET /hello?name=X отвечает 200 OK с телом Hello, X (без name -> Hello, world); неизвестный путь 404 Not Found с телом not found; другой метод на известном пути 405 Method Not Allowed с телом method not allowed. Тело в UTF-8. Проверка run(method, path, query) вызывает приложение и возвращает [статус, тело строкой].

Примеры

run("GET", "/health", "") // ["200 OK", "ok"]
run("GET", "/hello", "name=Аня") // ["200 OK", "Hello, Аня"]
run("GET", "/hello", "") // ["200 OK", "Hello, world"]

Как подойти

Подсказки: 2
  1. environ["PATH_INFO"], environ["REQUEST_METHOD"].
  2. urllib.parse.parse_qs для строки запроса.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.