Skip to content

Контроль HTTP-сервисов. Редакция 1.0 (проект "Инструменты 1С-Рарус")

License

Notifications You must be signed in to change notification settings

rarus/safe-rest-api-1c

Repository files navigation

Enterprise version EDT version GitHub License Download Badge GitHub Downloads (all assets, all releases) GitHub watchers

Предназначение инструмента

  • Инструмент «Контроль HTTP-запросов» обеспечивает:
    • логирование всех входящих HTTP-запросов;
    • выявление ошибок в работе сервисов;
    • оперативный мониторинг параметров работы сервисов;
    • статистический анализ HTTP-запросов;
    • предотвращения «гонки запросов»;
    • обеспечения идемпотентности небезопасных HTTP-методов.

При логировании механизм разбирает входящие HTTP-запросы на составляющие и записывает в журнал. Например, к таким составляющим относятся: URL, HTTP-метод, заголовки запроса, параметры из шаблона, из URL, из тела запроса. Ответ на HTTP-запрос логируется аналогичным образом. Кроме того, фиксируются различные метрики запроса: дата-время поступления запроса, размер тела и ответа, длительность обработки запроса алгоритмом бизнес-логики, код ответа, факт успешного окончания обработки запроса и прочие.

Таким образом, лог предоставляет информацию о параметрах запроса, времени поступления, длительности обработки и содержании ответа вызывающей стороне.

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

Реализован функционал для обеспечения идемпотентности HTTP-методов веб-сервиса. Позволяет автоматически обнаруживать возникновение гонки запросов, блокировать конфликтные запросы и предотвращать негативные последствия их обработки. Предусмотрено автоматическое разблокирование конфликтных HTTP-запросов по различным параметрам, настраиваемым в пользовательском режиме.

Идемпотентность – способность выдавать тот же результат при повторном выполнении операции с ресурсом.

Гонка запросов (race condition) – общее название группы серьезных проблем, с которыми сталкиваются IT-специалисты при росте нагрузки на веб-сервис. Например, когда клиент вызывает сложный, нагружающий систему HTTP-метод и, не дождавшись за отведенное время ответа от сервера, повторяет его.

Инструмент распространяется в виде cf-файла поставки конфигурации для платформы «1С:Предприятие 8.3». Рабочая конфигурация может быть поставлена на поддержку от данной библиотеки. Рекомендуется использовать с версией платформы 8.3.15 и выше. Поддерживает работу в режиме тонкого, толстого и веб-клиента.

  • Комплект поставки:
    • демоконфигурация с примером интеграции в простой HTTP-сервис;
    • инструкция с описанием порядка внедрения библиотеки.

Основные возможности

  • Инструмент предоставляет пользователям следующие возможности:
    • Управление работой HTTP-сервисов из пользовательского режима: можно включать и отключать любой сервис, настраивать параметры логирования, параметры обеспечения идемпотентности и параметры разблокирования конфликтных запросов.
    • Ведение журнала входящих HTTP-запросов в разрезе сервисов и ресурсов с замером длительности обработки каждого запроса.
    • Просмотр подробной информации о каждом входящем запросе и предоставленном ответе.
    • Автоматическое обнаружение и блокирование конфликтов при поступлении повторных HTTP-запросов.
    • Ведение журнала заблокированных запросов.
    • Автоматическое разблокирование конфликтных запросов по правилам, заданным в настройках сервиса.
    • Переход из заблокированного запроса к виновнику блокировки и наоборот. Возможность выполнить разблокирование конфликта вручную.
    • Автоматическое сокращение журналов входящих и заблокированных запросов в соответствии с настройкой, заданной отдельно для каждого сервиса;
    • Формирование аналитических отчетов.

Подробное описание настроек и возможностей инструмента приведено в справке к объектам подсистемы конфигурации.

Системные требования

Предполагается работа на всех видах клиента 1С:Предприятие и любых операционных системах.

Для разработки и тестирования использовались:

  • Платформа 1С:Предприятие: 8.3.15 и выше
  • 1C:Enterprise Development Tools: 2024.1.3

Лицензия

Эта программа и сопроводительные материалы предоставляются в соответствии с условиями лицензии Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by-sa/4.0/

Участие в проекте

Читай правила участия

About

Контроль HTTP-сервисов. Редакция 1.0 (проект "Инструменты 1С-Рарус")

Topics

Resources

License

Stars

Watchers

Forks