Connector icon indicating copy to clipboard operation
Connector copied to clipboard

feature: адаптация библиотеки Коннектор HTTP для работы в клиентском контексте.

Open petypen opened this issue 4 years ago • 11 comments

Решение проблемы issues #50

Адаптация библиотеки Коннектор HTTP для работы в клиентском контексте (Тонкий клиент)

Выполнено: Добавлена обработка КоннекторHTTP_Клиент, которая содержит форму модКоннектор в модуле которой реализована библиотека.

  • методы переведены в контекст &НаКлиенте
  • для серверных методов внутри которых содержится вызов метода ХешФункция параметр Алгоритм переведен с системного перечисления на Строку
  • выполнен рефакторинг кода, изменены наименования переменных, которые конфликтовали с предопределёнными реквизитами управляемой формы
  • добавлена обработка - тест Тесты_КоннекторHTTP_Клиент

Что предстоит сделать:

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

petypen avatar Nov 20 '20 18:11 petypen

@vbondarevsky Владимир, прошу проверить PR

petypen avatar Nov 20 '20 18:11 petypen

А почему в форме, а не в общем модуле?

не проходят тесты, которые содержат редирект

Редиректы сломались на https://httpbin.org/

vbondarevsky avatar Nov 23 '20 12:11 vbondarevsky

При встраивании библиотеки во внешние обработки приходится размещать её в модуле формы. Поэтому мне показалось, что такая реализация более удобная для повторного использования. Если структура библиотеки требует обязательного размещения в общем модуле, дайте знать. Я внесу изменения.

petypen avatar Nov 23 '20 12:11 petypen

При встраивании библиотеки во внешние обработки приходится размещать её в модуле формы. Поэтому мне показалось, что такая реализация более удобная для повторного использования. Если структура библиотеки требует обязательного размещения в общем модуле, дайте знать. Я внесу изменения.

Тут либо встраивание в обработку/форму, либо общий модуль, но в расширении или сразу в конфигурации. Сейчас в Коннекторе используется второй вариант. Поэтому предлагаю клиентский код тоже вынести в общий модуль

vbondarevsky avatar Nov 25 '20 18:11 vbondarevsky

@vbondarevsky Владимир, учел ваши замечания

  • учтены замечания #51 https://github.com/vbondarevsky/Connector/pull/51#issuecomment-733887846
  • библиотека перенесена в общий клиентский модуль КоннекторHTTPКлиент
  • методы, для которых обязателен серверный контекст перенесены в модуль КоннекторHTTPВызовСервера
  • удалена обработка КоннекторHTTP_Клиент
  • изменены тесты
  • в клиентскую библиотеку внесены изменения по issue #52

petypen avatar Nov 26 '20 17:11 petypen

Но ведь это все равно не будет работать в браузере, не?

zeegin avatar May 29 '21 17:05 zeegin

@zeegin да не будет, но будет работать на стороне клиента. Решаемая проблема: Если вся логика обмена с ресурсом располагается на клиенте, то текущая реализация коннектора требует обращения к серверу. Реализация Коннектора на клиенте позволит минимизировать обращения к серверу.

petypen avatar May 29 '21 17:05 petypen

Я представляю только один сценарий где может быть полезно - мобильный клиент.

zeegin avatar May 29 '21 17:05 zeegin

@zeegin Предложу еще вариант. Внешняя обработка где логика реализована на форме и по этому лазить на сервер за коннектором накладно.. Очень рад личному знакомству.

petypen avatar May 29 '21 18:05 petypen

Я представляю только один сценарий где может быть полезно - мобильный клиент.

Еще есть кейс с доменной авторизацией.

Daabramov avatar Jun 19 '21 15:06 Daabramov

@vbondarevsky , можно оживить этот pull request ? готов предложить помощь

NkLab avatar Nov 22 '21 15:11 NkLab

@NkLab присылайте пулл-реквест, это лучшая помощь!

leemuar avatar Jul 29 '23 16:07 leemuar

Задача актуальна, но прошло уже 3 года, работы по PR судя по всему не ведутся, поэтому закрываю.

leemuar avatar Dec 29 '23 20:12 leemuar