次のようなサービス呼び出しスクリプトを開発しています。
<cfinvoke webservice="#ServiceURL#" method="AddCustomer" returnvariable="ResponseData" argumentcollection="#stAguments#">
<cfinvokeargument name="api_key" value="#ServiceKey#" />
</cfinvoke>
明らかに、この呼び出しの前に満たされたstAguments構造。このコンテナに引数の 1 つを追加するのを忘れたか、間違った引数タイプを使用したとします。たとえば、無効なリクエストを作成したとします。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.*
これらすべての引数を1つずつ手動でチェックすると、頭が壊れます。これが問題です。
たぶん、誰でもこれを簡単にするために何らかのテクニックを使用します。
この比較を自動化するある種のパーサーについても考えました。
どんな考えやアイデアでも感謝します。
ありがとうございました。
PS私の母国語ではなく、私の英語で申し訳ありません。私が十分に明確でないことを書いたかどうか尋ねてください。
編集:
明確にするために。サービスへのアクセスに問題はありません。私はそれの所有者であり、各メソッドのすべての引数とそのタイプを確実に知っています。
問題は、リクエストを作成するときにエラーメッセージを読むことだけです-メソッド引数コンテナを埋めます。
たとえば、メソッドには 10 個の引数があり、誤って 9 個追加してしまいました。CF のローカル インスタンスは、メソッドが見つからないというエラーをスローし、渡したフィールドの生のリスト (上で編集) を表示します。そして、それらをメソッド引数と 1 つずつ比較して、見逃しているものを見つける必要があります。
本当に、それは使いやすさと時間の節約の問題です。