|
Как лучше организовать передачу веб-сервису значений? | ☑ | ||
---|---|---|---|---|
0
vladimir80
31.05.17
✎
03:04
|
Всем привет! Нужно на постоянной основе иметь возможность получать от вебсервиса абсолютно различные данные. Для этого создал простенькую функцию, которая принимает на вход текст запроса и возвращает таблицу значений.
Хочется расширить функционал и передавать кроме запроса еще и параметры. Подскажите, как лучше это организовать? В первом приближении видится, что надо передавать соответствие, которое в цикле устанавливать в параметры запроса. Но как это сделать встроенными средствами, без создания пакетов и т.п. - не знаю. Сервис будут дергать не только 1с-ки, но и сайты. |
|||
1
zvial
31.05.17
✎
05:04
|
Сайты будут передавать в качестве параметра текст запроса? И получать таблицу значений? А что они потом с ней делать будут?
В общем, можно все сериализовать. В XML ) |
|||
2
vi0
31.05.17
✎
05:48
|
(0) с точки зрения безопасности не очень красиво
|
|||
3
vladimir80
31.05.17
✎
12:52
|
(1) Да. Простой пример, передача кода/гуида плана обмена для получения списка номенклатуры, зарегистрированной к обмену по этому сайту, гуида номенклатуры, для которой надо извлечь картинки и т.п.
обратно и так отдается таблица значений в xml, проблем с ее разбором нет. У меня проблема скорее в том, как подсунуть список параметров в xml, как его сформировать текстом и получить в 1с именно в определенном типе, к примеру - соответствие. (2) Ну это не публичный сервис, такое решение обусловлено невозможностью часто менять конфигурацию, а количество объектов, которые должны получать данные - порядка 10, и задачи получения данных постоянно видоизменяются. |
|||
4
ptiz
31.05.17
✎
13:06
|
Структуру - в ХранилищеЗначения со сжатием, и его - сериализовать в xml.
|
|||
5
vi0
31.05.17
✎
13:14
|
(3) "Ну это не публичный сервис"
тем более не правильнее логику выборок сделать на сервере? а клиентам сообщать название выборки, параметры и структуру результата собственно, как это и делается по классике у клиентской и серверной части будут разные разработчики? |
|||
6
vladimir80
31.05.17
✎
16:04
|
(5) Клиент (владелец баз и сайтов-клиентов) - я. То есть это внутренний механизм для собственных нужд. Почему через веб-сервис объяснять долго, просто так надо. Именно по этому и не хочется усложнять, а писать кучу методов под каждый чих в источнике, потом дописывая их обработку в приемнике - ну как то избыточно, имхо.
|
|||
7
vladimir80
31.05.17
✎
17:09
|
(4) Ок, в этом случае передаются ДД на вход. А вот как их преобразовать в функции сервиса обратно в структуру? Лыжи совсем не едут...
|
|||
8
Бычье сердце
31.05.17
✎
17:19
|
(0)
1. Создаешь новый параметр в сервисе типа структуры (Structure (http://v8.1c.ru/8.1/data/core)) 2. Далее передаешь параметр в следующем виде: Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO); Сериализатор.ЗаписатьXDTO(Параметры); //Параметры тип структура ВебСервис.ПолучитьТаблицу(ТекстЗапроса, Сериализатор.ЗаписатьXDTO(ПараметрыWebОперации)); 3. В самом вебсервисе Сериализатор.ПрочитатьXDTO(Параметры); Ну далее по циклу параметры загоняешь в запрос. |
|||
9
Бычье сердце
31.05.17
✎
17:22
|
Надеюсь понятно объяснил)))
Передаем параметр Сериализатор.ЗаписатьXDTO(Параметры) В вебсервисе Сериализатор.ПрочитатьXDTO(Параметры); |
|||
10
vladimir80
31.05.17
✎
17:23
|
(9) Спасибо, сейчас попробую
|
|||
11
Бычье сердце
31.05.17
✎
17:29
|
(10)
Это будет работать между 1С. Если с сайтом обмен делать, то надо скорей всего через XML. |
|||
12
Юрий Лазаренко
31.05.17
✎
17:38
|
(11) Только не через XML, а через JSON. И не через веб-сервис, а через http-сервис, которому в качестве параметров можно передать произвольную строку (тот же JSON). Работать будет быстрее.
|
|||
13
vladimir80
31.05.17
✎
18:19
|
(9) Спасибо еще раз, помогло между 1с. Между сайтами чуть позже опробую, технология понятна, основная ошибка была в том, что пытался писать и читать xml, а не xtdo.
(12) Есть ощущение, что произвольную строку можно передать куда угодно. А по поводу скорости - обязательно попробую. Спасибо! |
|||
14
Юрий Лазаренко
31.05.17
✎
18:22
|
(13) Можно и веб-сервис произвольную строку передать, не спорю, мы так еще 8 лет назад делали - до сих пор работает, куда ж он денется.
|
|||
15
Юрий Лазаренко
31.05.17
✎
18:23
|
(13) Плюс http-сервиса как раз в том, что он одинаково хорошо работает как при запросе от 1С, так и при запросе с сайта. Ему ж пофигу, кто строку формировал - строка она и есть строка.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |