ServiceNowにWebhookでデータ連携
はじめに
みなさんこんにちは、三井情報株式会社です。
ServiceNowにWebhookでデータ連携する際の機能について紹介したいと思います。
Webhookに関しては、以前「HMAC-SHA256を利用したwebhookメッセージの検証方法」というタイトルで投稿しているため、気になる方はご確認ください。
Script REST APIs
今回紹介させていただく機能はServiceNowにてAPIを作成するための機能です。
ServiceNow Docs 「Scripted REST APIs」:
https://docs.servicenow.com/bundle/rome-application-development/page/integrate/custom-web-services/concept/c_CustomWebServices.html
Scripted REST APIsを使い、他のシステムからデータ受信し、ServiceNowのテーブルにレコードを作成する検証を実施しました。本題に入る前に、ご存知の方が多いと思いますが、簡単にAPIやRESTAPIについて記載します。
APIとは?
・Application Programming Interfaceの略
・ソフトウェアやプログラム、Webサービスの間をつなぐインターフェースのこと
Script REST APIs 設定項目
System Web Service > Scripted Web Services > Scripted REST APIs > New
Name:APIの名前
API ID:サービスのIDを設定
入力後Submitすると下記のような画面に遷移します。先ほど指定したIDからBase API pathが自動で作成されます。
画面下部のタブResourcesのNewを押下すると下記の画面になります。
この画面で、作成したいAPIメソッドやスクリプトを作成します。
検証では、HTTP methodをPOSTにしました。スクリプトは、POSTされたデータを指定したテーブルのレコードとして新規挿入するようにしてみました。
▼スクリプトイメージ
var req_data = request.body.dataString; var now_GR = new GlideRecord("レコードを挿入したいTable名"); now_GR.initialize(); for (var i = 0; i < data.length; i++){ var data_2 = data[i].split(","); if( data[i].indexOf("Hatena") > -1 ){ now_GR.u_test_column1 = data_2[1]; }else{ now_GR.u_test_column2 = data_2[1]; } } now_GR.insert();
Script REST APIs 検証結果
想定通り、POSTで受けとったデータの情報を基に、レコードを作成することができました!!