<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Обработка HTTP-запросов с помощью http4k on Промышленная разработка веб-приложений</title>
    <link>https://lms.crafted.su/web-app-development/2026-2-it-3/docs/course/02-http-introduction/03-simple-http4k-app/</link>
    <description>Recent content in Обработка HTTP-запросов с помощью http4k on Промышленная разработка веб-приложений</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://lms.crafted.su/web-app-development/2026-2-it-3/docs/course/02-http-introduction/03-simple-http4k-app/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Метаданные: Обработка HTTP-запросов с помощью http4k</title>
      <link>https://lms.crafted.su/web-app-development/2026-2-it-3/docs/course/02-http-introduction/03-simple-http4k-app/meta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://lms.crafted.su/web-app-development/2026-2-it-3/docs/course/02-http-introduction/03-simple-http4k-app/meta/</guid>
      <description>&lt;h2 id=&#34;результаты-освоения&#34;&gt;&#xA;  Результаты освоения&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#%d1%80%d0%b5%d0%b7%d1%83%d0%bb%d1%8c%d1%82%d0%b0%d1%82%d1%8b-%d0%be%d1%81%d0%b2%d0%be%d0%b5%d0%bd%d0%b8%d1%8f&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;В результате освоения данного занятия студент должен:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;описывать архитектуру серверного http4k-приложения: разделение библиотеки HTTP-сервера и логики обработки запросов;&lt;/li&gt;&#xA;&lt;li&gt;подключать к приложению зависимости &lt;code&gt;http4k-core&lt;/code&gt; и &lt;code&gt;http4k-server-netty&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;описывать функциональный тип &lt;code&gt;HttpHandler&lt;/code&gt; и создавать обработчики HTTP-запросов лямбда-выражением и классом;&lt;/li&gt;&#xA;&lt;li&gt;формировать объект &lt;code&gt;Response&lt;/code&gt; с заданным статусом, телом и заголовками;&lt;/li&gt;&#xA;&lt;li&gt;устанавливать заголовок &lt;code&gt;Content-Type&lt;/code&gt; напрямую и с помощью функции &lt;code&gt;contentType&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;запускать HTTP-сервер на базе Netty с указанием порта и останавливать его;&lt;/li&gt;&#xA;&lt;li&gt;описывать назначение URI и извлекать из запроса путь, параметры запроса, схему и адрес сервера;&lt;/li&gt;&#xA;&lt;li&gt;связывать маршруты с HTTP-обработчиками с помощью функций &lt;code&gt;routes&lt;/code&gt;, &lt;code&gt;bind&lt;/code&gt; и &lt;code&gt;to&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;создавать вложенные маршрутизаторы и объединять их в общий маршрутизатор;&lt;/li&gt;&#xA;&lt;li&gt;использовать переменные пути и извлекать их значения методом &lt;code&gt;Request.path&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;передавать зависимости (хранилище треугольников, генератор JSON) в конструкторы HTTP-обработчиков;&lt;/li&gt;&#xA;&lt;li&gt;применять инфиксные функции Kotlin при описании маршрутов;&lt;/li&gt;&#xA;&lt;li&gt;настраивать команду сервера с обязательными аргументами &lt;code&gt;--triangles-file&lt;/code&gt; и &lt;code&gt;--port&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;проверять, что значение аргумента &lt;code&gt;--port&lt;/code&gt; является целым числом в допустимом диапазоне;&lt;/li&gt;&#xA;&lt;li&gt;возвращать JSON-документ со списком треугольников по маршруту &lt;code&gt;/v1/list-triangles&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;устанавливать в ответе заголовок &lt;code&gt;Content-Type&lt;/code&gt; со значением &lt;code&gt;application/json&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;формировать статистику количества треугольников по цвету заливки и возвращать её по маршруту &lt;code&gt;/v1/statistic-by-color&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;проверять код ответа и заголовки запроса и ответа с помощью инструментов разработчика браузера.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
