Что это такое?

API (Application Programming Interface) представляет собой интерфейс, который позволяет различным программам взаимодействовать друг с другом. API ServiceNow предоставляет разработчикам доступ к различным функциональным возможностям платформы, позволяя автоматизировать процессы, интегрировать данные и обеспечивать эффективный мониторинг.

Его виды

  • REST

REST (Representational State Transfer) — это стандартный протокол взаимодействия между клиентом и сервером. REST API предоставляет доступ к объектам данных, операциям создания, чтения, обновления и удаления (CRUD) через HTTP-запросы.

  • SOAP

SOAP (Simple Object Access Protocol) также предоставляет доступ к функционалу ServiceNow, но использует XML для обмена сообщениями. В отличие от REST, SOAP предоставляет более строгий и формализованный способ взаимодействия.

  • Web Services

Web Services является общим термином, объединяющим как REST, так и SOAP API. Он предоставляет универсальный способ общения с платформой ServiceNow, позволяя выбирать подходящий протокол в зависимости от конкретных требований проекта.

Основные концепции

  • Таблицы и рекорды

В нем данные организованы в виде таблиц, а каждая запись представляет собой отдельную строку в таблице. Он позволяет вам взаимодействовать с этими таблицами и записями, выполняя различные операции.

  • Операции CRUD

Операции CRUD (Create, Read, Update, Delete) являются основными операциями, которые вы можете выполнять с данными. Например, вы можете создавать новые записи, извлекать данные, обновлять существующие записи и удалять ненужные.

  • Аутентификация и авторизация

Для безопасного взаимодействия с ServiceNow используются механизмы аутентификации и авторизации. Разработчики должны предоставить правильные учетные данные и ключи доступа для выполнения операций.

Пример использования REST

Предположим, у нас есть задача создания новой записи в таблице «incident» для отслеживания инцидентов.

Аутентификация:

  • Для начала необходимо аутентифицироваться, предоставив свои учетные данные.

bash

curl —location —request POST ‘https://instance.service-now.com/api/now/table/incident’ \

—header ‘Authorization: Basic base64(username:password)’ \

—header ‘Content-Type: application/json’ \

—data-raw ‘{

«short_description»: «Новый инцидент»,

«description»: «Описание нового инцидента»

}’

Создание записи:

С помощью HTTP POST-запроса можно создать новую запись в таблице «incident».

Ответ:

В ответ на запрос будет получен JSON-объект с информацией о созданной записи, включая уникальный идентификатор.

Расширение возможностей ServiceNow

  • Фильтрация и сортировка

API позволяет проводить точную фильтрацию данных при запросах, что особенно полезно при работе с объемными наборами информации. Вы можете использовать параметры запроса, такие как «sysparm_query» для определения условий фильтрации, и «sysparm_order» для сортировки результатов.

  • Множественные операции

Часто возникает необходимость выполнения нескольких операций в одном запросе. С API ServiceNow вы можете использовать транзакционные запросы, которые позволяют выполнять несколько операций атомарно. Это особенно полезно, когда требуется обновление или создание связанных записей.

  • Интеграция с внешними системами

API не ограничивается внутренними операциями. Вы можете интегрировать платформу с внешними системами, обмениваясь данными и автоматизируя взаимодействие между различными компонентами вашей IT-инфраструктуры.

Пример использования Web Services

Допустим, у вас есть задача обновить статус нескольких инцидентов в ServiceNow на основе данных из внешней системы. Воспользуемся Web Services API для этого.

  • Аутентификация:
  • Предоставим учетные данные и получим токен доступа.

bash

  • curl —location —request POST ‘https://instance.service-now.com/api/now/oauth/token’ \
  • —header ‘Content-Type: application/x-www-form-urlencoded’ \
  • —data-urlencode ‘client_id=your_client_id’ \
  • —data-urlencode ‘client_secret=your_client_secret’ \
  • —data-urlencode ‘grant_type=password’ \
  • —data-urlencode ‘username=your_username’ \
  • —data-urlencode ‘password=your_password’
  • Получение данных из внешней системы:
  • Запросим данные из внешней системы, используя их API.
  • Обновление инцидентов:
  • Используем полученные данные для обновления статусов соответствующих инцидентов в ServiceNow.

bash

Copy code

  • curl —location —request PATCH ‘https://instance.service-now.com/api/now/table/incident’ \
  • —header ‘Authorization: Bearer your_access_token’ \
  • —header ‘Content-Type: application/json’ \
  • —data-raw ‘{
  • «query»: «category=software»,
  • «update»: {
  • «state»: «resolved»
  • }

}’

Заключение

API ServiceNow предоставляет разработчикам мощные инструменты для интеграции, автоматизации и мониторинга. Понимание основных концепций и умение использовать различные виды API открывает широкие возможности для оптимизации бизнес-процессов и управления IT-сервисами.