リクエストオブジェクトとレスポンスオブジェクト - サーバーレス関数
リクエストオブジェクト:
「crmAPIRequest」引数を使用して、関数内でリクエストオブジェクト全体を取得できます。
関数を作成し、2つの引数を定義したとします。2つの異なるWebhookで同じ関数を使用する必要があります。各Webhookには異なる種類と量の情報が含まれる場合があります。1つはJSONオブジェクトとしてデータをアップロードし、もう1つはCSVファイルをアップロードします。現在、この2つは異なるデータ型であり、関数内の引数では使用できない場合があります。
この場合、crmAPIRequest引数を使用して、対応するコンテンツを取得できます。

「crmAPIRequest」引数を使用すると、「ボディー」、「パラメーター」、「ヘッダー」、または「ユーザー」情報からデータを取得できます。この単一の引数で、リクエストからの情報を動的に保存し、関数内で使用できるようにするため、関数内に複数の引数を作成する必要はありません。
注:
- crmAPIRequestに手動で値を渡す必要はありません。CRMはリクエストオブジェクトを引数に関連付けします。
- ただし、crmAPIRequest引数に何らかの値が渡されると、リクエスト情報によって上書きされます。
POSTMANからの出力例:

レスポンスオブジェクト:
ユーザーは、APIのレスポンスをどのようにするかを定義できます。ユーザーが関数のレスポンスとして特定のレスポンスコードを表示/取得する場合は、ユーザーは関数内でそのコードを指定できます。
ステータスコードに加えて、JSON、HTML、テキストなどの特定のファイルタイプでレスポンスを取得するように選択することもできます。

関数内のcrmAPIResponseは、出力レスポンスのタイプと内容を決定するための引数として機能します。
ステータスコード
API呼び出しが成功したかどうか、または不正なリクエストかどうかを識別するために通常使用されるステータスコードは数種類しかありません。API呼び出しで表示されるステータスコードを定義できます。
デフォルトのステータスコードは200です。
ステータスコードを設定するには:
/**
ビジネスロジックはこちら
**/
response = Map();
//ステータスコードを204に上書する
response.put("status_code",204);
return {"crmAPIResponse":response};
コンテンツタイプ
ステータスコードに加えて、通常JSONオブジェクトとして提供されるレスポンスを別の形式で取得するように設定できます。
このキーのデフォルト値はapplication/json;charset=utf-8です。
テキスト形式でレスポンスを取得するには:
/**
ビジネスロジックはこちら
**/
response = Map();
//コンテンツタイプを上書きする場合、デフォルトはapplication/json
response.put("Content-Type","application/text");
return {"crmAPIResponse":response};
ヘッダー
レスポンスヘッダーは、API呼び出しがレスポンスとして提供するファイル/データのサイズとタイプを定義するのに役立ちます。場合によっては、次の処理、つまり次のAPI呼び出しの決定に役立つため、レスポンスヘッダーを表示したいユーザーもいます。
このキーのデフォルト値は{"Content-Disposition", "attachment;filename=response.json"}です。
レスポンスヘッダーを取得するには:
/**
ビジネスロジックはこちら
**/
response = Map();
headers = Map();
headers.put("X-ZOHO-SOURCE","CRM");
headers.put("X-Frame-Options","SAMEORIGIN");
headers.put("X-RATELIMIT-LIMIT","60");
response.put("headers",headers);
return {"crmAPIResponse":response};
ボディー
レスポンスボディーには、リクエストへのレスポンスとして外部サービスに送信する必要がある情報が含まれます。
ボディーのデフォルト値は空です。
レスポンスヘッダーを取得するには:
/**
ビジネスロジックはこちら
**/
response = Map();
body = "{<XML>}"
response.put("body",body);
return {"crmAPIResponse":response};