ベストプラクティス:エラー処理
Workflowsプラットフォームは、APIがスローするエラーがコネクターのエンドユーザーに表示されるように処理します。エラー処理関数If Error (Try/Catch)の使用は、コネクターの_authpingフローでのメッセージ処理など、特殊な状況に限定される場合があります。ただし、コネクターのカードを設計する際のエラー処理には、いくつかのベストプラクティスがあります。
必須入力の処理
コネクターの入力を作成するときは、作成者として[Inputs(入力)]ダイアログで必須のマークをフィールドに付けることができます。フィールドを必須として設定すると、コネクターカードのエンドユーザーは、そのフィールドに値を入力するか、別のカードからの出力をドラッグしなければならなくなります。ユーザーが出力フィールドにドラッグした時点でカードのフロントエンド検証は満たされるため、フローの実行時にその出力フィールドに実際の値が入力されるかどうかは保証されません。そのため、コネクターの開発者は、必要な値が存在することをAPIの呼び出し前に確認することをお勧めします。事前の確認により、プラットフォームが既知の不正なリクエストをAPIに送信するのを防止し、エンドユーザーのAPI制限も保護できます。
必須フィールドを検証する最も簡単な方法は、エラー処理のReturn Error Ifカードの使用です。必須入力のエラーメッセージには、次の形式を使用することをお勧めします:No <Input Name> input provided. Please enter a valid <Input Name>.(<入力名>入力がありません。有効な<入力名>を入力してください)。
メッセージとともに400ステータスコードを含めるようにしてください。400 Bad Request応答ステータスコードは、サーバーは、クライアントエラーと見られる何かが存在するため、リクエストを処理できないか、処理しないことを示します。(たとえば、リクエストの構文が不正である、リクエストメッセージのフレーミングが無効である、リクエストのルーティングが偽造であるなど)。
例
-
Connector Action(イベント)カードの右にReturn Error If関数を追加します。
-
必要な入力をReturn Error Ifカードのvalue a(値a)入力にドラッグし、comparison(比較)をis emptyに設定します。
-
message(メッセージ)フィールドに「No <Input Name> input provided. Please enter a valid <Input Name>.(<入力名>入力がありません。有効な<入力名>を入力してください) 」と入力します。この<Input Name>は、フィールドの表示名です。
-
statusCodeフィールドに「400」を入力します。