カスタムチャット統合のスクリプト化された REST API を作成および構成する
スクリプト化済み REST API を作成し、スクリプト化済み REST リソースを追加し、セキュリティとコンテンツネゴシエーションを設定し、REST API のレート制限を設定します。
始める前に
カスタムチャット統合のチャネルにリッチコントロールをマップする。
必要なロール:admin
手順
-
REST API を作成します。
- 移動先 すべて > システム Web サービス > スクリプト化 Web サービス > スクリプト化 REST API.
- [New] をクリックします。
-
フォームのフィールドに入力します。
フィールド 説明 名前 API の名前。例: ACME モバイルアプリチャットアダプタ。 API ID API 識別子。たとえば、 acme_chat です。 保護ポリシー スクリプトの保護ポリシー。 - 読み取り専用:スクリプトは表示専用です。
- 保護:パスワード権限を持つユーザーがスクリプトを編集できます。
アプリケーション スクリプトレコードを含むアプリケーション。デフォルトでグローバルが選択されています。 API 名空間 API が属する名前空間。この値は、現在のアプリケーションスコープによって異なります。 - [Submit (送信)] を選択します。
- オプション:
新しいレコードを開き、[ 関連リンク] に移動して [ バージョニングの有効化] をクリックし、[ OK] をクリックします。
[更新] をクリックして変更を保存します。
-
スクリプト化された REST リソースを新しい REST API に追加します。
スクリプト済み REST リソースは、作成したスクリプト済み REST API 定義を定義します。
- 作成した REST API レコードを開き、[関連リンク] の [リソース] タブに移動します。
-
[New] をクリックします。
要求からペイロードを取得し、ハイブリッドキューに書き込みます。
-
フォームで、フィールドに入力します。
フィールド 説明 API 定義 親 API の名前。 アプリケーション スクリプトレコードを含むアプリケーション。 名前 API REST リソースの名前。たとえば、 ACME チャットなどです。 API バージョン API バージョン。例:v1。 このフィールドは、REST API のバージョニングを有効にした場合にのみ表示されます。
アクティブ REST リソースをアクティブにするオプション。 HTTP メソッド POST、GET などの HTTP メソッド。 相対パス リソースへの相対パス。 スクリプト REST リソースのスクリプト。 保護ポリシー スクリプトの保護ポリシー。 - 読み取り専用:スクリプトは表示専用です。
- 保護:パスワード権限を持つユーザーがスクリプトを編集できます。
スクリプト化された REST リソースの例:(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) { var body = request.body; var queryParams = request.queryParams; // incoming content is application/x-www-form-urlencoded in this example // get the provider application sys id. this can be done via a glide query using incoming data such as where the original message is being sent to. or it can be hard-coded such as this example. var providerAppId = "a5f8b75b7377001042281188caf6a73a"; // the time of receipt is recorded for analytics purposes var d = new Date(); var logTime = d.getTime(); // add this message to the VA Server queue for processing var queued = sn_cs.VASystemObject.enqueueCustomAdapterMessage(providerAppId, JSON.stringify(queryParams), JSON.stringify(request.headers), logTime); if (queued == false) { response.setError(new sn_ws_err.BadRequestError('Failed to process the request.')); } })(request, response);
-
スクリプト化された REST リソースのセキュリティとコンテンツネゴシエーションを設定します。
認証と要求の形式を設定することを選択します。カスタム統合が認証に依存していない場合は、次のように削除できます。
- スクリプト済み REST リソースの新しいレコードで、[ セキュリティ ] タブに移動します。
- クリア 認証が必要です。
- [ コンテンツネゴシエーション ] タブをクリックし、[ サポートされている要求形式の上書き] を選択します。
- [Submit (送信)] を選択します。
-
REST API のレート制限を設定して、受信要求のレートを定義します。
- 移動先 すべて > システム Web サービス > REST > レート制限ルール.
- [New] をクリックします。
-
フォームのフィールドに入力します。
フィールド 説明 名前 レート制限ルールの一意の名前。 REST API 前のステップで作成した REST API。 バージョン REST API のバージョンです。リストされる値は、選択した REST API によって異なります。 リソース 指定されたバージョンのリソース。リストされている値は、選択したバージョンによって異なります。 アクティブ レート制限ルールが有効であることを示すチェックボックス 。 レート制限ルールは、作成されるとデフォルトで直ちに有効になります。レート制限ルールを無効にしてレート制限の適用を停止したり、レート制限ルールを有効にしてレート制限の適用を再開したりすることができます。
1 時間当たりの要求制限 1 時間あたりに許可される最大要求数です。 注:このフィールドの値を更新するたびに、ServiceNow AI Platform により要求数が 0 にリセットされ、現在の時間のすべての違反が削除されます。適用先 このルールによって制限されるユーザー。[ すべてのユーザー] を選択します。 - [Submit (送信)] を選択します。