Skip to content

feat(http): добавить форму и примеры форматов тела - #24

Merged
mokevnin merged 1 commit into
mainfrom
fix/http-body-form
Oct 14, 2026
Merged

mokevnin merged 1 commit into
mainfrom
fix/http-body-form

Conversation

@mokevnin

Copy link
Copy Markdown
Contributor

Summary

В учебном сервере появилась HTML-форма для урока о форматах тела. Студент связывает имена полей с отправленным запросом и видит полученные сервером значения. Примеры JSON, текстовых полей, вложения и PNG обслуживаются тем же сервером.

GET /http-protocol/form       → HTML с title и description
POST /http-protocol/form      → прочитанные поля обычным текстом
POST /http-protocol/body      → заголовки и данные JSON/form/files
GET /http-protocol/image.png  → 8090 байтов PNG

Evidence

  • Before: на http.hexlet.app отсутствовали форма и обработчик multipart для урока.
  • After: отправка формы проверена в Chrome. Сервер получил title=Check+the+automation+task&description=Review+the+test+request и вернул оба значения с пробелами. Скриншот реальной формы сохранён в уроке.
  • make test проходит, включая JSON с числом и boolean, URL-encoded поля, вложение и сигнатуру/длину PNG. Все существующие API также проверены.
  • Новые JS-модули прошли oxlint и oxfmt. Docker-образ собран локально как ghcr.io/hexlet-components/http-example:form-preview без отправки в registry.

Merge Danger

Door: two-way

Добавлены отдельные маршруты. Учебные коллекции не меняются. Multipart ограничен одним файлом до 64 КиБ и десятью полями по 4 КиБ. Пример возвращает текст UTF-8 из вложения.

Blast Radius: HTTP-server

Слияние в main запускает штатную сборку и публикацию образа. Выкат http_example выполняется отдельно. Урок уже отправлен в GitLab, коммит c0c50e8; новые ссылки заработают после выката сервера.

@mokevnin
mokevnin merged commit 725695c into main Oct 14, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant