ServiceNow のカスタムテーブルに REST API を実行してみた

https://developer.servicenow.com/dev.do#!/reference/api/utah/rest/c_TableAPI#table-GET

## 環境変数をセット
dinstance="dev******.service-now.com"
basicauth="admin:**************"
tablename="x_982243_apitest_apitest"

## GET
curl -s "https://$dinstance/api/now/table/$tablename" \
  --request GET \
  --user $basicauth \
  | jq .

{
  "result": []
}

## POST
curl -s "https://$dinstance/api/now/table/$tablename" \
  --request POST \
  --header "Content-Type: application/json" \
  --user $basicauth \
  --data '{
    "user_id": "100",
    "user_name": "mnrst"
  }' \
  | jq .

{
  "result": {
    "sys_id": "6cf61b7d974261109055b08fe153af02",
    "sys_updated_by": "admin",
    "user_id": "100",
    "sys_created_on": "2023-04-08 00:19:26",
    "user_name": "mnrst",
    "sys_mod_count": "0",
    "sys_updated_on": "2023-04-08 00:19:26",
    "sys_tags": "",
    "sys_created_by": "admin"
  }
}

## sys_id を付けて PATCH
curl -s "https://$dinstance/api/now/table/$tablename/6cf61b7d974261109055b08fe153af02" \
  --request PATCH \
  --header "Content-Type: application/json" \
  --user $basicauth \
  --data '{
    "user_name": "mnrst user"
  }' \
  | jq .

{
  "result": {
    "sys_id": "6cf61b7d974261109055b08fe153af02",
    "sys_updated_by": "admin",
    "user_id": "100",
    "sys_created_on": "2023-04-08 00:19:26",
    "user_name": "mnrst user",
    "sys_mod_count": "1",
    "sys_updated_on": "2023-04-08 00:21:54",
    "sys_tags": "",
    "sys_created_by": "admin"
  }
}

## sys_id を付けて PUT
curl -s "https://$dinstance/api/now/table/$tablename/6cf61b7d974261109055b08fe153af02" \
  --request PUT \
  --header "Content-Type: application/json" \
  --user $basicauth \
  --data '{
    "user_name": "mnrst user name"
  }' \
  | jq .

{
  "result": {
    "sys_id": "6cf61b7d974261109055b08fe153af02",
    "sys_updated_by": "admin",
    "user_id": "100",
    "sys_created_on": "2023-04-08 00:19:26",
    "user_name": "mnrst user name",
    "sys_mod_count": "2",
    "sys_updated_on": "2023-04-08 00:22:31",
    "sys_tags": "",
    "sys_created_by": "admin"
  }
}

## sys_id 付きの GET
curl -s "https://$dinstance/api/now/table/$tablename/6cf61b7d974261109055b08fe153af02" \
  --request GET \
  --user $basicauth \
  | jq .

{
  "result": {
    "sys_id": "6cf61b7d974261109055b08fe153af02",
    "sys_updated_by": "admin",
    "user_id": "100",
    "sys_created_on": "2023-04-08 00:19:26",
    "user_name": "mnrst user name",
    "sys_mod_count": "2",
    "sys_updated_on": "2023-04-08 00:22:31",
    "sys_tags": "",
    "sys_created_by": "admin"
  }
}

## GET
curl -s "https://$dinstance/api/now/table/$tablename" \
  --request GET \
  --user $basicauth \
  | jq .

{
  "result": [
    {
      "sys_id": "6cf61b7d974261109055b08fe153af02",
      "sys_updated_by": "admin",
      "user_id": "100",
      "sys_created_on": "2023-04-08 00:19:26",
      "user_name": "mnrst user name",
      "sys_mod_count": "2",
      "sys_updated_on": "2023-04-08 00:22:31",
      "sys_tags": "",
      "sys_created_by": "admin"
    }
  ]
}

# DELETE
curl -s "https://$dinstance/api/now/table/$tablename/6cf61b7d974261109055b08fe153af02" \
  --request DELETE \
  --user $basicauth \
  | jq .

## GET
curl -s "https://$dinstance/api/now/table/$tablename" \
  --request GET \
  --user $basicauth \
  | jq .

{
  "result": []
}
タグ: ,