2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ServiceNowにWebhookでデータ連携

Last updated at Posted at 2022-06-16

はじめに

みなさんこんにちは、三井情報株式会社です。
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サービスの間をつなぐインターフェースのこと

REST APIとは?
・RESTの設計原則に基づいて設計されたAPIのこと

RESTの設計原則とは?
・URI(HTTPのパス)が名詞形であること
・リソースの操作(作成/閲覧/変更/削除)をHTTPのメソッドにより指定できること
・レスポンス形式がJSONもしくはXMLであること

次に、具体的なServiceNowでの設定項目と検証結果について記載します。

Script REST APIs 設定項目

①REST APIの作成
System Web Service > Scripted Web Services > Scripted REST APIs > New
image.png
Name:APIの名前
API ID:サービスのIDを設定

上記の項目を入力後Submitすると下記のような画面に遷移します。先ほど指定したIDからBase API pathが自動で作成されます。

image.png
画面下部のタブResourcesのNewを押下すると下記の画面になります。
下記の画面で、作成したいAPIメソッドやスクリプトを作成します。

②Resourceの作成
image.png

検証では、HTTP methodをPOSTにしました。スクリプトでは、POSTされたデータをカンマ区切りで成形し、指定したテーブルのレコードとして新規挿入するようにしてみました。

▼スクリプトイメージ

Script Image
var 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で受けとったデータの情報を基に、レコードを作成することができました!!

おわりに

いかがでしたでしょうか。標準で用意されているREST APIではできない処理を外部システムから起動する際に、是非利用してみてください。今回の検証では、認証を検証しませんでしたが、API実行時にACLでユーザー認証を実施できるようなので、今後は認証の検証にも挑戦したいです。
最後まで読んでいただき、ありがとうございました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?