<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Обработка переменных пути on Промышленная разработка веб-приложений</title>
    <link>https://lms.crafted.su/web-app-development/2026-2-it-3/docs/course/02-http-introduction/05-processing-user-input/</link>
    <description>Recent content in Обработка переменных пути 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/05-processing-user-input/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Метаданные: Обработка переменных пути</title>
      <link>https://lms.crafted.su/web-app-development/2026-2-it-3/docs/course/02-http-introduction/05-processing-user-input/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/05-processing-user-input/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;&lt;/li&gt;&#xA;&lt;li&gt;задавать шаблон пути с переменной и извлекать её значение методом &lt;code&gt;Request.path&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;объяснять, как &lt;code&gt;Request.path&lt;/code&gt; получает данные через интерфейс &lt;code&gt;RoutedMessage&lt;/code&gt; и класс &lt;code&gt;RequestWithContext&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;создавать шаблон пути с помощью функции-конструктора &lt;code&gt;UriTemplate.from&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;расширять класс-хранилище функцией получения треугольника по идентификатору с возвратом &lt;code&gt;null&lt;/code&gt;, если элемент не найден;&lt;/li&gt;&#xA;&lt;li&gt;добавлять в класс-хранилище функцию добавления треугольника с назначением уникального идентификатора через &lt;code&gt;UUID.randomUUID()&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;преобразовывать строковое значение переменной пути в &lt;code&gt;UUID&lt;/code&gt; и проверять его корректность;&lt;/li&gt;&#xA;&lt;li&gt;формировать HTTP-ответ с кодом 400, BAD REQUEST, и JSON-документом с сообщением об ошибке;&lt;/li&gt;&#xA;&lt;li&gt;формировать HTTP-ответ с кодом 404, NOT FOUND, и JSON-документом с сообщением об отсутствии ресурса;&lt;/li&gt;&#xA;&lt;li&gt;возвращать полное JSON-описание треугольника по маршруту &lt;code&gt;/v1/triangle/{triangle-id}&lt;/code&gt; с кодом 200, OK;&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;связывать HTTP-обработчик с маршрутом, содержащим переменную пути;&lt;/li&gt;&#xA;&lt;li&gt;выделять обработку запроса без переменной пути в отдельный маршрут и возвращать по нему код 400;&lt;/li&gt;&#xA;&lt;li&gt;писать модульные тесты на HTTP-обработчик с проверкой кодов ответа и тела JSON-документа.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
