Используется для обращения к метаданным объекта конфигурации - метод HTTP- сервиса.
Полное описание, параметры и ограничения
ОбъектМетаданных: МетодHTTPСервиса (MetadataObject: HttpServiceMethod)
ОбъектМетаданных: МетодHTTPСервиса (MetadataObject: HttpServiceMethod)
Доступен, начиная с версии 8.3.5.
Свойства:
HTTPМетод (HTTPMethod)
Обработчик (Handler)
Описание:
Используется для обращения к метаданным объекта конфигурации - метод HTTP- сервиса.
Доступность:
Толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.5.
Методическая информация
Практические примеры
Найти обработчики GET и POST одного пути
Одинаковый URL имеет два разных метода и две разные функции сервиса. Имя метода метаданных и тип HTTPМетод проверяются отдельно.
Где и как запускать
Полный серверный модуль учебной копии КА2 Progress 2.5.20.75; без HTTP, публикации и печати.
Подготовка
Изолированная учебная копия КА2 Progress 2.5.20.75 из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, платформа 8.5.1.1343. Создайте серверный общий модуль УчебныеМаршрутыИМакеты.
Вставьте полный модуль одного урока и вызовите УчебныеМаршрутыИМакеты.ВыполнитьПример() своей серверной учебной командой.
Источники: HTTPServices\ПередачаДанных.xml и ПередачаДанных\Ext\Module.bsl; Documents\РеализацияТоваровУслуг\Templates\ПФ_MXL_РеализацияТоваров.xml.
Метаданные только читаются. HTTP-запросы, публикация сервиса, загрузка/удаление файлов хранилища и печать документов не выполняются.
Формируемый путь с guide-owned-storage — учебная строка, не действующий адрес публикации. GET/POST обработчики могут выполнять прикладную работу и здесь не вызываются.
Макет печати получается в память без создания документа реализации и без заполнения его данными. Чтение размера макета не доказывает корректность настоящей печатной формы.
Процедура ВыполнитьПример() Экспорт
Сервис = Метаданные.HTTPСервисы.Найти("ПередачаДанных");
Если Сервис = Неопределено Тогда
ВызватьИсключение "Нет подтверждённого HTTP-сервиса ПередачаДанных";
КонецЕсли;
Шаблон = Сервис.ШаблоныURL.Найти("ХранилищеИИдентификатор");
Если Шаблон = Неопределено Тогда
ВызватьИсключение "Нет подтверждённого шаблона ХранилищеИИдентификатор";
КонецЕсли;
GETМетод = Шаблон.Методы.Найти("GET");
POSTМетод = Шаблон.Методы.Найти("POST");
Если GETМетод = Неопределено ИЛИ POSTМетод = Неопределено Тогда
ВызватьИсключение "Нет подтверждённых GET/POST методов";
КонецЕсли;
Сообщить(GETМетод.HTTPМетод = Метаданные.СвойстваОбъектов.HTTPМетод.GET);
Сообщить(POSTМетод.HTTPМетод = Метаданные.СвойстваОбъектов.HTTPМетод.POST);
Сообщить(GETМетод.Обработчик = "ХранилищеИИдентификаторGETЗапрос");
Сообщить(POSTМетод.Обработчик = "ХранилищеИИдентификаторPOSTЗапрос");
Сообщить(Сервис.Модуль = Неопределено);
Сообщить("Посмотрите исходный модуль HTTPServices/ПередачаДанных/Ext/Module.bsl. Обработчики здесь НЕ вызываются.");
Сообщить(Шаблон.Синоним);
Сообщить(Шаблон.Комментарий);
Сообщить(Шаблон.ПолноеИмя());
Сообщить(Шаблон.Представление());
Сообщить(Шаблон.ПринадлежностьОбъекта);
Сообщить(ТипЗнч(Шаблон.ОбъектРасширяемойКонфигурации));
Сообщить(Шаблон.ЕстьИзмененияРасширениямиКонфигурации());
Сообщить(ТипЗнч(Шаблон.РасширениеКонфигурации()));
Сообщить(Шаблон.Родитель() = Сервис);
КонецПроцедурыРазбор по шагам
Внутри Шаблон.Методы найти GET и POST по именам.
Сравнить их HTTPМетод с реальным перечислением, а Обработчик — с исходными строками.
Открыть исходный Module.bsl вручную: обе функции принимают Запрос. Это входящий HTTPСервисЗапрос, не объект SQL Запрос.
Не вызывать функции и не отправлять GET/POST. Урок заканчивается чтением метаданных маршрута.
Как проверить результат
Шесть фиксированных проверок дают Истина, остальное диагностическое.
В Module.bsl находятся ХранилищеИИдентификаторGETЗапрос(Запрос) и POSTЗапрос(Запрос). Экспорт по этому примеру не требуется и не добавляется.
Ожидаемый результат
Полный образец поиска точки обработки HTTP без исполнения прикладного кода.
На что обратить внимание
Даже GET может иметь прикладные побочные эффекты: чтение метаданных не является разрешением его вызывать.
В модуле HTTP-сервиса обработчик не обязательно объявлен Экспорт.
Проверка имён не доказывает правильность авторизации или поведения обработчика.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Составить карту HTTP-сервиса из метаданных
Для каждого сервиса показываем корневой URL, шаблоны, HTTP-методы и имена обработчиков. Сетевые запросы не отправляем.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Для Каждого Сервис Из Метаданные.HTTPСервисы Цикл
Сообщить(СтрШаблон("Сервис %1 (%2); корень %3", Сервис.Имя, Сервис.Синоним, Сервис.КорневойURL));
Сообщить(Сервис.Комментарий);
Сообщить(СтрШаблон("Повторное использование %1; время жизни %2",
Сервис.ПовторноеИспользованиеСеансов, Сервис.ВремяЖизниСеанса));
Сообщить(Сервис.Модуль = Неопределено);
Для Каждого Маршрут Из Сервис.ШаблоныURL Цикл
Сообщить(СтрШаблон("Шаблон %1 (%2): %3", Маршрут.Имя, Маршрут.Синоним, Маршрут.Шаблон));
Сообщить(Маршрут.Комментарий);
Для Каждого Метод Из Маршрут.Методы Цикл
Сообщить(СтрШаблон(" %1 → %2", Метод.HTTPМетод, Метод.Обработчик));
КонецЦикла;
КонецЦикла;
КонецЦикла;Разбор по шагам
КорневойURL относится к пути сервиса внутри публикации. Не добавляем домен, порт и имя публикации наугад.
ШаблонURL сопоставляется с методом запроса. Одинаковый путь с GET и POST может иметь разные обработчики.
Обработчик — строка имени процедуры. Свойство Модуль в доступном API равно Неопределено и не раскрывает исходный текст.
Параметры повторного использования сеанса читаем для последующего исследования, ничего не переключаем.
Как проверить результат
В Конфигураторе HTTP-сервисы → выбранный сервис → Шаблоны URL найдите совпадающие имена, шаблоны и методы.
Если публикации нет, пример всё равно может вывести определения: это не ошибка и не доказательство доступности URL.
В примере нет HTTPСоединения: внешние системы не получают запросов.
Ожидаемый результат
Получена карта маршрутов и обработчиков для анализа серверного кода интеграции.
На что обратить внимание
Метаданные не показывают настройки веб-сервера, TLS, аутентификацию и фактические коды ответа.
Не считайте путь из метаданных рабочей ссылкой без проверки конкретной публикации.
Наличие метода DELETE не даёт разрешения проверять удаление на рабочем сервере.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.