アラーム管理オープン API 開発者ガイド
アラーム管理オープン API を使用して、イベント [em_event] テーブルのデータを作成および更新します。
この開発者ガイドでは、 アラーム管理オープン API を拡張してさまざまなカスタマイズを行う方法について説明します。
アラーム管理オープン API の拡張
スクリプトインクルードを編集することで アラーム管理オープン API を拡張できます。
これらのスクリプトインクルードは変更の結果を理解した上で編集する必要があります。
TMFAlarmAPIConstants:定数と必要なパラメーター情報が含まれます。TMFAlarmAPIUtil:API 要求を処理する関数が含まれています。AlarmAPIProcessorOOB:TMFAlarmAPIUtil の関数をサポートするヘルパー関数が含まれています。AlarmAPIProcessor:空のスクリプトインクルードファイル。この ファイル を使用して、 AlarmAPIProcessorOOB から上書きする関数を定義します。
アラーム管理オープン API を拡張して、次のカスタマイズを行います。
必要なパラメーター
アラーム管理 API は、JSON スキーマを使用して必須パラメーター情報を保持します。これらの JSON スキーマは、 TMFAlarmAPIConstants スクリプトインクルードで定義されます。これらのスキーマは 要求ペイロードが有効かどうかを検証するために使用されます。これらのスキーマはスクリプトインクルードでは直接参照されず、 AlarmAPIProcessorOOB スクリプトインクルードの次のメソッドによって返されます。
- getCreateEventSchema:イベントを作成するための検証スキーマを返します。
- getClearEventSchema:イベントアラームをクリアするための検証スキーマを返します。
- getPatchEventSchema:イベントにパッチを適用するための検証スキーマを返します。
既存のスキーマを上書きするには、 AlarmAPIProcessor スクリプトインクルードで新しいスキーマを定義し、 AlarmAPIProcessorOOB スクリプトインクルード methods を上書きします。
var AlarmAPIProcessor = Class.create();
AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
// Define overriding functions here
// Define getCreateEventSchema here to override OOTB method in AlarmAPIProcessorOOB
getCreateEventSchema: function() {
return JSON.parse(AlarmAPIProcessor.CUSTOMIZED_SCHEMA);
},
type: 'AlarmAPIProcessor'
});
// Define a new schema
AlarmAPIProcessor.CUSTOMIZED_SCHEMA = "{\"title\":\"CreateAlarm\",\"type\":\"object\",
\"properties\":{\"externalAlarmId\":{\"type\":\"string\"},\"alarmType\":{\"type\":\"string\"},
\"perceivedSeverity\":{\"type\":\"string\"},\"probableCause\":{\"type\":\"string\"},
\"alarmedObject\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},
\"href\":{\"type\":\"string\"}},\"required\":[\"id\"]},\"sourceSystemId\":{\"type\":\"string\"}},
\"required\":[\"externalAlarmId\",\"alarmType\",\"perceivedSeverity\",\"probableCause\",
\"alarmedObject\",\"sourceSystemId\"]}";要求本文の検証
要求本文で追加の検証を実行するには、AlarmAPIProcessorOOB スクリプトインクルードの次の関数 を上書きします。これらの関数は TMFAlarmAPIUtil スクリプトインクルードで指定された関数によって呼び出されます。
カスタム検証を適用するには、AlarmAPIProcessorOOB ヘルパー関数を AlarmAPIProcessor と同じ名前の関数名とパラメーターで上書きします。新しい AlarmAPIProcessor 関数は、デフォルトの AlarmAPIProcessorOOB ヘルパー関数を置き換えるために TMFAlarmAPIUtil によって呼び出されます。verifyCreateEventPayload()-processCreateEvent()によって呼び出されます。verifyClearEventPayload()-processClearEvent()によって呼び出されます。verifyPatchEventPayload()-processPatchEvent()によって呼び出されます。
この例では カスタム AlarmAPIProcessor スクリプトインクルードの関数が AlarmAPIProcessorOOB のデフォルト関数を オーバーライドして、name 属性の検証を実行します。
var AlarmAPIProcessor = Class.create();
AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
// Define overriding functions here
verifyCreateEventPayload: function(eventPayload, apiResponseProcessor){
// Returning false terminates the POST request
// Make sure to assign error message and reason
if (eventPayload.type != "unique") {
apiResponseProcessor.setMessage("Failed");
apiResponseProcessor.setReason("No reason needed");
return false;
}
},
type: 'AlarmAPIProcessor'
});他の REST 操作
既存の GET、PATCH、POST 操作以外の操作を作成するには、アラーム管理オープン API 用のスクリプト化された REST リソースを追加で作成 します。新しいスクリプト化された REST リソースのロジックは 既存の操作と 整合している必要があります。TMFAlarmAPIUtil で新しい操作の関数を定義します。
フィールドマッピング
レコードを作成または更新する際、アラーム管理オープン API は要求本文パラメーターをイベントレコードフィールドにマッピングします。レコードを取得するときに、API はレコードフィールドを応答オブジェクト属性にマッピングします。
AlarmAPIProcessorOOB スクリプトインクルードには、PATCH または POST 要求本文をイベント [em_event] テーブルのレコードにマップするための次の関数が含まれています。
mapCreateAlarmObjectToEvent()mapClearAlarmObjectToEvent()mapPatchAlarmObjectToEvent()
また イベント GlideRecord を GET、PATCH、または POST 要求の JSON 応答オブジェクトにマッピングするための次の関数も含まれています。
modifyCreateEventResponse()modifyClearEventResponse()modifyPatchEventResponse()
次の例では、2 つの AlarmAPIProcessor 関数が AlarmAPIProcessorOOB のデフォルト関数を上書きして、 タイプ field マッピングを変更し、[ 重大度 ] フィールドのマッピングを追加します。
var AlarmAPIProcessor = Class.create();
AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
// Define overriding functions here
// Function name and parameters must be identical to the function it overrides
mapCreateAlarmObjectToEvent: function(eventGr, eventObject){
// Override default mapping for the severity field
eventGr.severity = "High";
},
modifyCreateEventResponse: function(eventGr, eventObject){
// Override default mapping for the type field
eventGr.type = "Customized Event";
},
type: 'AlarmAPIProcessor'
});