.. _gs3_rest_resources: Ресурсы ============= Сервис отвечает за загрузку ресурсных файлов. Адреса сервиса - ``http://{server[:port]}/{DB}/app/sys/resource/sid/{sid}/siv/{SIV}/name/{path}`` - ``http://{server[:port]}/{DB}/app/sys/resource/sid/{sid}/name/{path}`` - ``http://{server[:port]}/{DB}/app/sys/resource/siv/{siv}/name/{path}`` - ``http://{server[:port]}/{DB}/app/sys/resource/name/{path}`` где: - ``{sid}`` - уникальный идентификатор рабочего сеанса, строковое представление GUID. - ``{siv}`` - идентификатор образа решения. Необходим, чтобы браузер "понимал" изменение версии ресурса и загружал его с сервера, а не из собственного кэша. - ``{path}`` - относительный путь к ресурсу. Порядок определения требуемого образа решения (загрузчик классов прикладного кода): 1. Текущий образ решения для E-сессии, если указан {sid}. 2. Текущий образ решения (загрузчик классов прикладного кода) в остальных случаях. Загрузка ресурса по имени делегирована классу прикладного кода, реализующему интерфейс :java:type:`ru.bitec.gtk.core.sbt.CoreWebResourceSupplier`. Делегат может возвращать источник ресурса следующих типов: - URL - InputStream, - массив байт - объект Response с полным определением параметров http-ответа. Если делегат в ответ на запрос CSS-файла или изображения возвращает источник ресурса, в http-ответ добавляется заголовок "cache-control", управляющий кэшированием ресурсов в браузере. Для предотвращения утечки скомпилированных кодов прикладных приложений, реализована фильтрация отдаваемых ресурсов по расширению. Запрещена отдача скомпилированного и не скомпилированного java/scala кода и содержимого каталога "META-INF/". .. seealso:: - :ref:`Спецификация сервиса изображений - Общие положения ` - :ref:`Спецификация сервиса изображений - Изображения ресурсов прикладного проекта ` Аутентификация ..................... :ref:`spec_services_http_authentication`.