<?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/06-processing-user-queries/</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/06-processing-user-queries/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/06-processing-user-queries/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/06-processing-user-queries/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;описывать структуру строки запроса URI и правила записи пар «название=значение»;&lt;/li&gt;&#xA;&lt;li&gt;объяснять, почему набор параметров запроса не сводится к ассоциативному массиву с уникальными ключами;&lt;/li&gt;&#xA;&lt;li&gt;создавать объект &lt;code&gt;Uri&lt;/code&gt; из строки функцией &lt;code&gt;Uri.of(value: String)&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;извлекать значения параметров функциями &lt;code&gt;Uri.queries()&lt;/code&gt;, &lt;code&gt;Parameters.findSingle()&lt;/code&gt; и &lt;code&gt;Parameters.findMultiple()&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;преобразовывать параметры в ассоциативный массив функцией &lt;code&gt;Parameters.toParametersMap()&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;различать обязательные и необязательные параметры и назначать значения по умолчанию;&lt;/li&gt;&#xA;&lt;li&gt;проверять корректность значений параметров и формировать ответ 400, BAD REQUEST, с JSON-документом ошибки;&lt;/li&gt;&#xA;&lt;li&gt;применять &lt;code&gt;Uri.query(name, value)&lt;/code&gt; для добавления параметра и &lt;code&gt;Uri.removeQuery(name)&lt;/code&gt; для удаления параметров без изменения исходного объекта;&lt;/li&gt;&#xA;&lt;li&gt;реализовывать операцию фильтрации списка по значению параметра;&lt;/li&gt;&#xA;&lt;li&gt;реализовывать постраничный вывод с параметрами &lt;code&gt;page&lt;/code&gt; и &lt;code&gt;records-per-page&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;применять порядок обработки «сначала фильтрация, затем выборка страницы»;&lt;/li&gt;&#xA;&lt;li&gt;выделять классы-операции для связи хранилища и HTTP-обработчика;&lt;/li&gt;&#xA;&lt;li&gt;описывать операции классами и функциями высшего порядка и передавать их в HTTP-обработчик;&lt;/li&gt;&#xA;&lt;li&gt;подменять операции тестовыми дублями при модульном тестировании HTTP-обработчика.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
