5.8.1. Справочник URI эндпоинтов

После запуска сервера приложений по адресу http://server/{DATABASE}/ становятся доступны следующие веб узлы:

Адрес

Описание

/

Frontend приложения Global ERP

/webserver/

Backend приложения Global ERP

/fastreportmono/

Прокси к серверу FastReport Mono

/fastreport/

Прокси к серверу FastReport VCL 5

/ssh/

SSH сервер

/app/sys/

Системные HTTP сервисы

5.8.1.1. Ресурсы узла “/”

  • /login - страница входа.

  • /view - ресурсы клиентского приложения.

  • /ru.bitec.View - GWT-код клиентского приложения.

5.8.1.2. Ресурсы узла “/webserver”

  • /EngineEndpoint - Используется как:
    • Web-сокет транспорта клиентского приложения

    • Url-адрес для получения коллекций изображений

      Deprecated since version Для: получения коллекций изображений используйте следующий HTTP сервис

    • Url-адрес для получения ресурсов клиентского приложения

      Deprecated since version Для: получения ресурсов клиентского приложения используйте следующий HTTP сервис

  • /BrowserCmdEndpoint - Web-сокет транспорта браузерного плагина.

  • /upload - адрес загрузки файлов на сервер.

  • /download - адрес скачивания файлов с сервера.

  • /sln - [Technical Preview] адрес обработчика http-запросов прикладного решения. Запросы направляются в экземпляр ru.bitec.gtk.core.servlet.CoreServlet, полученный из ru.bitec.gtk.core.servlet.CoreServletFactory.newInstance(Object)

5.8.1.2.1. Параметры EngineEndpoint

5.8.1.2.1.1. Получение коллекции изображений

Deprecated since version Для: получения коллекций изображений используйте следующий HTTP сервис

Параметры:

  • cmd = getImage

  • sid = Идентификатор сессии

  • collectionName = Наименование коллекции

Пример запроса
/webserver/EngineEndpoint?cmd=getImage&sid=3dd71af4-f800-4953-a36e-44b71b3e97c2&collectionName=toolbarprimarydisabled

5.8.1.2.1.2. Получение изображения ресурсов прикладного проекта

Deprecated since version Для: получения ресурсов клиентского приложения используйте следующий HTTP сервис

Параметры:

  • cmd = getResourceImage

  • sid = Идентификатор сессии

  • resourceUri = Путь к изображению относительно папки resources, которая хранится на прикладном проекте. Путь к папке resources: КореньПроекта/Модуль/src/main/resources.

Пример запроса
/webserver/EngineEndpoint?cmd=getResourceImage&sid=3dd71af4-f800-4953-a36e-44b71b3e97c2&resourceUri=ru/bitec/app/gs3/images/0.svg

5.8.1.2.1.3. Получение изображения из файлового хранилища сервера

Added in version 1.29.0-ms1.

Используется для получения изображения из файлового хранилища сервера.

Эндпоинт настраивается при помощи Configuration.Endpoints.ImageFromFileStorage и становится доступен только после того, как настроен “белый список” ресурсов, из которых разрешается получать изображения, в Configuration.Endpoints.ImageFromFileStorage.Whitelist.

Метод запроса: GET.

Параметры запроса:

  • cmd = getImageFromFileStorage

  • sid = Идентификатор сессии

  • token = Непрозрачный токен изображения. Сервер связывает токен с конкретным файлом, формирует готовый URL и передаёт его клиенту. Клиент использует этот URL как есть и не задаёт путь к файлу самостоятельно. Эндпоинт принимает только токены, выданные сервером в рамках текущей сессии.

Заголовки запроса:

  • If-None-Match (необязательный) - используется для условного запроса, чтобы не скачивать изображение повторно, если оно не изменилось. В заголовок передаётся значение ETag, полученное в ответе на предыдущий запрос этого же изображения. Сервер сравнивает переданный ETag с текущим:

    • если они совпадают (изображение не изменилось) - возвращается 304 Not Modified без тела ответа, и клиент использует ранее сохранённую копию изображения;

    • если не совпадают - возвращается актуальное изображение со статусом 200 OK.

Пример запроса
/webserver/EngineEndpoint?cmd=getImageFromFileStorage&sid=3dd71af4-f800-4953-a36e-44b71b3e97c2&token=5oL2b3c1Qk9mZ0xWhWnQmA

Успешные ответы:

Статус

Описание

200 OK

Изображение отдано, тело ответа содержит его байты.

304 Not Modified

Изображение не изменилось, тело ответа не содержит его байты:

  1. If-None-Match совпал с текущим ETag;

  2. в If-None-Match передан *.

Ошибочные ответы:

Статус

Причины

400 Bad Request

  1. параметр token отсутствует;

  2. token не расшифровывается секретом текущей сессии;

  3. token расшифровался в пустой путь.

401 Unauthorized

  1. параметр sid отсутствует;

  2. сессия по sid не найдена.

403 Forbidden

  1. запрос не аутентифицирован;

  2. сессия принадлежит другому пользователю.

404 Not Found

  1. эндпоинт не настроен: нет секции Configuration.Endpoints.ImageFromFileStorage или пуст whitelist;

  2. расширение файла отсутствует или не входит в число поддерживаемых;

  3. путь пуст, синтаксически некорректен или не абсолютный;

  4. путь не покрыт whitelist’ом;

  5. сегмент пути не существует;

  6. сегмент пути - симлинк, reparse-point, устройство или FIFO;

  7. путь указывает на каталог, а не на файл;

  8. содержимое файла не соответствует расширению;

  9. файл исчез между проверкой пути и открытием.

Причины между собой не различаются: разобрать их можно по логу эндпоинта.

503 Service Unavailable

Группа файлового хранилища временно недоступна по данным фоновой проверки:

  1. группа не читается или не отвечает (UNAVAILABLE);

  2. группа восстанавливается, либо ещё не проверялась (RECOVERING).

Пауза перед повтором - в заголовке Retry-After.

500 Internal Server Error

  1. сбой файловой системы при проверке пути;

  2. ошибка ввода-вывода при чтении файла или записи ответа;

  3. непредвиденная ошибка при обработке запроса.

Ответы с ошибками (4xx/5xx) передаются с пустым телом и не кэшируются.

5.8.1.3. Ресурсы узла “/app/sys”

  • /monitor - Rest-сервисы мониторинга кластера:
    • /public/isAlive - информирует о доступности ноды.

    • /protected/nodes - возвращает список узлов кластера.

    • /protected/node - возвращает информацию об узле кластера.

    • /protected/sessions - управления рабочими сеансами пользователя.

    • /protected/session - управления рабочим сеансом пользователя.

  • /soap

  • /ws/console

  • /resource - сервис ресурсов (пример: ExtComponent).

  • /rest
    • /report - сервис формирования печатных форм.

    • /reports - сервис формирования пачек печатных форм.

    • /es/pkg - точка доступа к прикладным RestPkg-пакетам и хранением состояния сессии (Exclusive Session).

    • /ss/pkg - точка доступа к прикладным RestPkg-пакетам и без хранения состояния сессии (Shared Session).

    • /es/mcp - readonly MCP-сервер (Model Context Protocol, JSON-RPC 2.0, Exclusive Session): POST — диспетчеризация JSON-RPC, DELETE — закрытие сессии, GET — 405. Подробная спецификация.