RSA Archer API Ресурс и разъяснение содержания
Я могу получить доступ как к RSA REST, так и к API на основе WSDL. Их документы ссылаются на содержание и ресурсы. Однако при входе в реальный инструмент я могу получить доступ к таким вещам, как билет на инцидент и тому подобное.
Билеты на инциденты будут иметь INC-1234, который будет строкой. Но API принимает целочисленные значения для контента или ресурса при поиске по идентификатору.
self.wsdl['search'].service.SearchRecordsByReport(
sessionToken=self.token,
reportIdOrGuid=14,
pageNumber=1
)
Если я не предоставлю целое число, я получу 404 с простым "сообщением": "Запрос недействителен". в REST и что-то более сложное, если я передаю значение в SOAP
Итак, Вопрос 1. Есть ли ресурс RSA, который коррелирует / демистифицирует отношения вызовов в API с фактическими названиями вещей, с которыми я имею дело в пользовательском интерфейсе.
Вопрос 2. Есть ли библиотека кодов, в которой кто-то ранее создал / изменил билеты на инциденты rsa?
1 ответ
Если вы говорите о получении contentID записи, вы можете получить его двумя способами: в GUI наведите курсор мыши на свое ключевое поле (ссылка, по которой можно кликнуть), и в левом нижнем углу лучника отобразится что-то похожее на "123456|100|17", где первый набор - это contentID этой записи.
Если вы говорите о получении reportID (14, как вы показали выше), вы можете сделать то же самое, когда перейдете в список основных отчетов, и он отобразится в правом нижнем углу вашего браузера.
Если вы хотите сделать все это из кода, я обычно собираю это вместе так:
- Выполнить поиск отчета; Получите идентификаторы полей из отчета
(вероятно, важно убедиться, что ваше ключевое поле включено в графический интерфейс отчета, чтобы вы могли определить, с какой записью вы имеете дело); сделать другой вызов API (возможно, REST, поскольку он действительно обрабатывает метаданные), чтобы получить имя поля и т. д. (или вы можете сделать все это статическим и просто жестко закодировать имена полей с помощью соответствующих GUIDS) - Внутри тега
вы можете поймать атрибут contentID. Затем сделайте шаг вниз и сравните тег поля, соответствующий вашему ключевому полю, и у вас будет contentID этой записи. - Делайте записи обновления, удаления и т. Д. Все, что вам нужно сделать.
Если вы ищете конкретный идентификатор отчета, сделайте вызов REST, чтобы получить все отчеты, и он вернет имена и идентификаторы отчетов, а затем займитесь своими делами, делая другие вызовы.
Недавно я столкнулся с подобной ситуацией, когда мне нужно искать значение поля (например, "INC-1234") с помощью API Archer.
Итак, для вашего вопроса 1: метод, который я нашел удобным для моих требований, - это "ExecuteQuickSearchWithModuleIds", который может искать значение и предоставляет все ContentID, которые имеют эти значения (с учетом ModuleId).
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ExecuteQuickSearchWithModuleIds xmlns="http://archer-tech.com/webservices/">
<sessionToken>ABC123ABC123ABC123ABC123ABC1</sessionToken>
<moduleIds>123</moduleIds>
<keywords>INC-1234</keywords>
<pageNumber>9999999</pageNumber>
<pageSize>9999999</pageSize>
</ExecuteQuickSearchWithModuleIds>
</soap:Body>
</soap:Envelope>
И для вашего вопроса 2 я нашел богатую библиотеку для Python3 Archer RSA.
Надеюсь, это поможет кому-то, кто задается этим вопросом.