Я разрабатываю скрипт вызова службы, который выглядит следующим образом:
<cfinvoke webservice="#ServiceURL#" method="AddCustomer" returnvariable="ResponseData" argumentcollection="#stAguments#">
<cfinvokeargument name="api_key" value="#ServiceKey#" />
</cfinvoke>
stAguments структура, заполненная до этого вызова, очевидно.
Представьте, что вы забыли добавить один из аргументов в этот контейнер или использовали неверный тип аргумента, например, создали неверный запрос. ColdFusion выдает исключение, которое может быть перехвачено, но не может (не буквально) быть прочитано:
*Web service operation AddCustomer with parameters {postcode={12345},org_name={Terms test 7.79661762856},fax={},html={1},addr1={address1},firstname={sergey},city={Austin},country={},taxable={},notify={1},lastname={galashyn},addr2={},ssn={},api_key={8FE9AD0BCF2382D92A1080DB3AA62DB9},taxrate={0},terms={Net 15},active={},state={},salutation={Mr.},password={123},account_manager={1}} cannot be found.*
Это ломает мне голову, проверяя все эти аргументы вручную один за другим. Это проблема.
Может быть, кто-нибудь использует какую-то технику, чтобы сделать это проще.
Я даже думал о каком-то парсере для автоматизации этого сравнения.
Буду признателен за любые мысли и идеи.
Спасибо.
P.S. Извините за мой английский - не мой родной язык. Пожалуйста, спросите, не написал ли я что-нибудь недостаточно ясное.
EDIT:
Чтобы уточнить. Проблема не в доступе к сервису. Я являюсь его владельцем, и я точно знаю все аргументы и их типы для каждого метода.
Проблема только в чтении сообщения об ошибке при создании запроса - заполнение контейнера аргументов метода.
Например, метод получил 10 аргументов, и я случайно добавил 9 - локальный экземпляр ошибки CF, который не может быть найден, и показывает необработанный список (см. Выше) полей, которые я передал. И мне нужно сравнить их один за другим с аргументами метода, чтобы найти то, что я пропустил.
Действительно, это проблема удобства и простоты использования.