Что это такое?
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-сервисами.