Перейти к основному содержимому

Вызвать метод

Выполняет унарный запрос к выбранному сервису

Функция ВызватьМетод(Знач Соединение, Знач Сервис, Знач Метод, Знач Запрос = Неопределено, Знач Таймаут = 10000, Знач Tls = Неопределено) Экспорт

ПараметрCLI опцияТипОбяз.Назначение
Соединение--connПроизвольныйСуществующее соединение или параметры соединения
Сервис--serviceСтрокаИмя сервиса
Метод--methodСтрокаИмя метода
Запрос--dataСтруктура Из КлючИЗначениеДанные запроса
Таймаут--toutЧислоТаймаут (в мс)
Tls--tlsСтруктура Из КлючИЗначениеНастройки TLS, если необходимо. См. ПолучитьНастройкиTls
Возвращаемое значение

Соответствие Из КлючИЗначение - Результат обработки

Пример использования для 1С:Предприятие/OneScript
Адрес = "https://grpcb.in:9001";

Proto1 = "https://hut.openintegrations.dev/test_data/grpcbin_with_import.proto"; // Строка, путь к файлу или URL
Proto2 = "https://hut.openintegrations.dev/test_data/mt.proto"; // Строка, путь к файлу или URL

Схемы = Новый Соответствие;
Схемы.Вставить("main.proto" , Proto1); // Основной
Схемы.Вставить("my_types.proto", Proto2); // Для импорта в основной

Мета = Новый Структура("somekey", "somevalue");
Параметры = OPI_GRPC.ПолучитьПараметрыСоединения(Адрес, Схемы, Мета);
Tls = OPI_GRPC.ПолучитьНастройкиTls(Истина);

Сервис = "grpcbin.GRPCBin";
Метод = "DummyUnary";

МассивСтрок = Новый Массив;
МассивСтрок.Добавить("one");
МассивСтрок.Добавить("two");
МассивСтрок.Добавить("three");

МассивЧисел = Новый Массив;
МассивЧисел.Добавить(1);
МассивЧисел.Добавить(10);
МассивЧисел.Добавить(100);

МассивСтруктур = Новый Массив;
МассивСтруктур.Добавить(Новый Структура("f_string", "Nested value 1"));
МассивСтруктур.Добавить(Новый Структура("f_string", "Nested value 2"));

МассивБулево = Новый Массив;
МассивБулево.Добавить(Истина);
МассивБулево.Добавить(Ложь);

Файл = "https://hut.openintegrations.dev/test_data/document.docx";
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);

ИВФ = ПолучитьИмяВременногоФайла();
Файл.Записать(ИВФ);

МассивДвоичныхДанных = Новый Массив;
МассивДвоичныхДанных.Добавить(Файл); // Как данные
МассивДвоичныхДанных.Добавить(ИВФ); // Как путь к файлу

Данные = Новый Соответствие;
Данные.Вставить("f_string" , "Test message");
Данные.Вставить("f_int32" , 123);
Данные.Вставить("f_int64" , 123);
Данные.Вставить("f_float" , 123.22000122070312);
Данные.Вставить("f_bool" , Истина);
Данные.Вставить("f_enum" , "ENUM_1");
Данные.Вставить("f_bytes" , Файл);
Данные.Вставить("f_sub" , Новый Структура("f_string" , "Nested value"));
Данные.Вставить("f_strings", МассивСтрок);
Данные.Вставить("f_int32s" , МассивЧисел);
Данные.Вставить("f_int64s" , МассивЧисел);
Данные.Вставить("f_floats" , МассивЧисел);
Данные.Вставить("f_bytess" , МассивДвоичныхДанных);
Данные.Вставить("f_subs" , МассивСтруктур);
Данные.Вставить("f_bools" , МассивБулево);
Данные.Вставить("f_enums" , СтрРазделить("ENUM_1,ENUM_2", ","));

Результат = OPI_GRPC.ВызватьМетод(Параметры, Сервис, Метод, Данные, , Tls);
# JSON данные также могут быть переданы как путь к файлу .json

oint grpc ВызватьМетод \
--conn "{'address':'https://grpcb.in:9001','proto':{'main.proto':'https://hut.openintegrations.dev/test_data/grpcbin_with_import.proto','my_types.proto':'https://hut.openintegrations.dev/test_data/mt.proto'}}" \
--service "grpcbin.GRPCBin" \
--method "DummyUnary"
Результат
{
"data": {
"f_bool": true,
"f_bools": [
true,
false
],
"f_bytes": {
"BYTES": "UEsDBBQABgAIAAAAIQAykW9XZgEAAKUFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAA..."
},
"f_bytess": [
{
"BYTES": "UEsDBBQABgAIAAAAIQAykW9XZgEAAKUFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAA..."
},
{
"BYTES": "UEsDBBQABgAIAAAAIQAykW9XZgEAAKUFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAA..."
}
],
"f_enum": "ENUM_1",
"f_enums": [
"ENUM_1",
"ENUM_2"
],
"f_float": 123.220001220703,
"f_floats": [
1,
10,
100
],
"f_int32": 123,
"f_int32s": [
1,
10,
100
],
"f_int64": 123,
"f_int64s": [
1,
10,
100
],
"f_string": "Test message",
"f_strings": [
"one",
"two",
"three"
],
"f_sub": {
"f_string": "Nested value"
},
"f_subs": [
{
"f_string": "Nested value 1"
},
{
"f_string": "Nested value 2"
}
]
},
"result": true
}