Open usa4ev opened 8 months ago
Зачем? Какой сценарий использования?
Имя метода - это контанта, которая заведомо будет использована в клиентском коде повсеместно. Кажется, что разумно определить ее единожды и использовать только это определение. Дополнительно это исключит возможность опечатки в имени метода, которую не сможет отловить синтаксический контроль. Сценарий использования такой:
Процедура МояПроцедура() Экспорт
// Какой-то код...
Ответ = АБСП_КоннекторHTTP.абсп_КоннекторHTTP.ВызватьМетод(МетодGET(), Ресурс, Параметры, Сессия);
// Еще какой-то код...
КонецПроцедуры;
Функция МетодGET()
Возврат АБСП_КоннекторHTTP.МетодGET();
КонецФункции
Сама идея понятна, но вот ее полезность - нет.
В библиотеке уже есть именованные методы для распространенных методов http.
Вместо КоннекторHTTP.ВызватьМетод("GET", ... )
можно писать КоннекторHTTP.Get( ... )
. Так запись короче, и вы сразу получаете проверку на ошибки на этапе синтаксического контроля ну или на крайний случай - на этапе компиляции модуля. Вынос строковых констант в отдельные методы выглядит для меня пока как оверинжиниринг.
В каком сценарии вы видите необходимость в этом? Почему эти методы должны стать частью именно библиотеки?
Я использую ВызватьМетод() в служебном модуле, который создает сессию, набирает параметры и обрабатывает ответ. К этому модулю идет обращение в методах программного интерфейса моей подсистемы. Каждая функция ПИ вызывает служебный модуль, в который передает имя HTTP-метода, который нужно использовать, и другие данные, необходимые для запроса. Соответственно КоннекторHTTP.Get() в данном случае не подходит, т.к. служебный модуль не знает, какой метод нужно вызвать. Значит, я должен где-то имена методов определить, а модуль коннектора кажется самым разумным местом для этого.
Соглашусь с автором, методы полезные. Тоже использую подобный кейс
Добавил функции, которые возвращают имена методов, чтобы избавиться от строковых констант в клиентском коде