1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-10 22:41:43 +02:00

PXY: Обработка GET запросов

This commit is contained in:
Anton Titovets
2025-02-02 13:44:11 +03:00
parent 87d29cb9c8
commit 3dbbde7a3d
4 changed files with 54 additions and 5 deletions

View File

@@ -129,7 +129,7 @@
| Возврат ОбщаяТаблица;
|
|КонецФункции
|
|Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач Команда, Знач Метод) Экспорт
|
| Модуль = СоответствиеКоманд.Получить(Команда);
@@ -191,7 +191,7 @@
| Возврат Новый Структура(""Ошибка,Результат"", Ложь, ТекстВыполнения);
|
|КонецФункции
|
|Функция ТребуетсяОбработкаУправляющихПоследовательностей(Знач ИмяПараметра, Знач ЗначениеПараметра)
|
| ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);

View File

@@ -41,6 +41,7 @@
// Раскомментировать, если выполняется OneScript
// #Использовать "../../tools"
// #Использовать "../../../cli/data"
#Область ПрограммныйИнтерфейс
@@ -91,9 +92,11 @@
ВебСервер = Новый(ТипСервер, ПараметрыСервера);
Обработчик = Новый("OPI_ОбработчикЗапросовПрокси");
СоставОПИ = Новый("СоставБиблиотеки");
Обработчик.ПутьПроекта = Проект;
Обработчик.МодульПрокси = ЭтотОбъект;
Обработчик.ОбъектОПИ = СоставОПИ;
ВебСервер.ДобавитьОбработчикЗапросов(Обработчик, "ОсновнаяОбработка");
ВебСервер.Запустить();

View File

@@ -45,6 +45,7 @@
Перем ПутьПроекта Экспорт;
Перем МодульПрокси Экспорт;
Перем ОбъектОПИ Экспорт;
#КонецОбласти
@@ -112,9 +113,55 @@
Запрос = Контекст.Запрос;
Параметры = Запрос.Параметры;
Аргументы = Обработчик["args"];
АргументыСтрогие = Новый Соответствие;
АргументыНестрогие = Новый Соответствие;
Для Каждого Аргумент Из Аргументы Цикл
Если Аргумент["strict"] = 1 Тогда
АргументыСтрогие.Вставить(Аргумент["arg"], Аргумент["value"]);
Иначе
АргументыНестрогие.Вставить(Аргумент["arg"], Аргумент["value"]);
КонецЕсли;
КонецЦикла;
КотелПараметров = АргументыНестрогие;
Для Каждого Параметр Из Параметры Цикл
КотелПараметров.Вставить(Параметр.Ключ, Параметр.Значение);
КонецЦикла;
Для Каждого Аргумент Из АргументыСтрогие Цикл
КотелПараметров.Вставить(Аргумент.Ключ, Аргумент.Значение);
КонецЦикла;
ВыполнитьУниверсальнуюОбработку(Контекст
, Обработчик["library"]
, Обработчик["function"]
, КотелПараметров);
КонецПроцедуры
Контекст.Ответ.ЗаписатьКакJson(Обработчик);
Процедура ВыполнитьУниверсальнуюОбработку(Контекст, Команда, Метод, Параметры)
СтруктураВыполнения = ОбъектОПИ.СформироватьСтрокуВызоваМетода(Параметры, Команда, Метод);
Если СтруктураВыполнения["Ошибка"] Тогда
Ответ = Новый Структура("result,error", Ложь, "Error in a handler command or method");
Иначе
ТекстВыполнения = СтруктураВыполнения["Результат"];
УстановитьБезопасныйРежим(Истина);
Выполнить(ТекстВыполнения);
УстановитьБезопасныйРежим(Ложь);
КонецЕсли;
Контекст.Ответ.ЗаписатьКакJson(Ответ);
КонецПроцедуры
Процедура ОшибкаОбработки(Контекст, Код, Текст)

View File

@@ -1,6 +1,5 @@
#Использовать cmdline
// #Использовать oint
#Использовать "../../../OInt"
#Использовать oint
#Использовать "../../tools"
#Использовать "../../help"
#Использовать "../../data"