ServiceNow REST API の利用方法

Stay hungry. Stay foolish. Your time is limited, so don't waste it living someone else's life.

ServiceNow REST API の利用方法

はじめに

 ServiceNowのREST APIを利用してデータ連携する機会があったので、REST APIの利用方法について説明する。

利用方法

調査した利用方法は以下の通りである。

  1. POSTMANの認証情報を設定する。
  2. テーブルAPIを利用して、検索や登録、更新、削除を実行する。
  3. インポートセットAPIを利用して、登録する。
  4. AttachmentAPIを利用して、添付ファイルをアップロードする。

利用詳細

1.POSTMANの認証情報を設定する。

 POSTMANでServiceNowのAPIを利用する場合に、アクセストークンが必要である。
 POSTMANのOAuth認証について説明する。

 POSTMANの認証情報の設定は以下の通り。

GrandType: implicit
Callback URL: {OAuth Callback URL}
Auth URL: https://{instance-id}.service-now.com/oauth_auth.do
Client ID: {OAuth Client ID}
Client Authentication: Send as Basic Auth header

 APIを利用してトークンを取得したい場合は以下の通り。

リクエスト情報は以下の通り。

URL: POST https://{instance-id}.service-now.com/oauth_token.do
Request body:
  grant_type: password
  client_id: {OAuth client ID}
  client_secret: {OAuth client secret}
  username: admin
  password: {password}

2.テーブルAPIを利用して、検索や登録、更新、削除を実行する。

公式ヘルプ:Table APIリファレンス

インシデントテーブルの検索APIは以下の通り。

// 複数レコード検索
URL: GET https://{instance-id}.service-now.com/api/now/table/incident
headers: Authorization: Bearer {access_token}
// 単レコード検索
URL: GET https://{instance-id}.service-now.com/api/now/table/incident/{sys_Id}
headers: Authorization: Bearer {access_token}

レコードの登録は以下の通り。

URI: POST https://{instance-id}.service-now.com/api/now/table/incident
Headers:
  Authorization: Bearer {access_token}
  Content-Type: application/json
  Accept: application/json
RequestBody:
{
    "short_description": "POSTMAN 登録",
    "caller_id": "Beth Anglin"
    ・・・
}

レコードの更新は以下の通り。

URL: PATCH https://{instance-id}.service-now.com/api/now/table/incident/{sys_Id}
Headers:
  Authorization: Bearer {access_token}
  Content-Type: application/json
  Accept: application/json
RequestBody:
{
    "short_description": "POSTMAN 登録",
    "caller_id": "Beth Anglin"
    ・・・
}

 レコードの削除は以下の通り。

URL: DELETE https://{instance-id}.service-now.com/api/now/table/incident/{sys_Id}
headers: Authorization: Bearer {access_token}

 SOAP APIで添付ファイルアップロードした際の、Queueの結果を確認する場合は、下記のリクエストで確認する。

URI: POST https://{instance-id}.service-now.com/api/now/table/ecc_queue?sys_id={sys_id}
headers: Authorization: Bearer {access_token}

 SOAP APIの構造を確認したい場合は、下記のリクエストで確認する。

URL: GET https://{instance-id}.service-now.com/ecc_queue.do?WSDL
headers: Authorization: Bearer {access_token}

 レコード毎に添付ファイル情報を取得したい場合は、以下のリクエストを送信する。

URI: GET https://{instance-id}.service-now.com/api/now/table/sys_attachment?table_sys_id={record_sys_id}
headers: Authorization: Bearer {access_token}

3.インポートセットにレコードを登録する。

インポートセットにレコードを登録する。

公式ヘルプ:Importset APIリファレンス

リクエスト情報は以下の通り。

URI: GET https://{instance-id}.service-now.com/{table name}_list.do?CSV

4.添付ファイルをアップロードする。

Attachment APIを利用してレコードに添付ファイルをアップロードする。
POSTMANの実行は以下の通り。

公式ヘルプ:Attachment APIリファレンス

 リクエスト情報は以下の通り。

URL: POST https://dev95120.service-now.com/api/now/attachment/file
Headers:
    Authorization: Bearer {access_token}
QueryParameters:
    file_name: {File name(拡張子)}
    table_name: incident
    table_sys_id: {Record Sys ID}
RequestBody:
    Binary data

 ServiceNowの画面から添付ファイルがアップロードされていることを確認できる。

さいごに

 いかがだったでしょうか?
 ServiceNowのAPIの利用手順について説明しました。
 ぜひ、活用してみてください。では、

公式ヘルプ:REST APIリファレンス