Guten Tag,
aktuell versuche ich die API via Python anzusprechen. Hintergrund war ursprünglich, dass einer großen Anzahl an Benutzern eine zusätzliche E-Mailadresse hinzugefügt werden sollte und diese anschließend als "primary" gesetzt wird. Python soll eingesetzt werden, weil im Team und in der bisherigen IT-Infrastruktur Python stark verbreitet ist und somit einen gewissen Standart darstellt.
Bisheriges Ergebnis:
Um keine Fehler zu verursachen habe ich mich erstmal an einem Code für eine Suche probiert. Die Funktion "SearchTitle(string)" sucht im Titelfeld nach einem vollen string und liefert den "Bereich" General aus i-doit zurück.
Zielstellung:
Gerne möchte ich nun auch den Bereich "Persons" mit den Attributen zurückbekommen und später dort auch schreiben, z. B. die E-Mailadresse. Das gelingt mir aber leider nicht, weil ich nicht weiß wie ich die "untergeordneten" Attribute ansprechen kann.
Anbei ein Bild der Thematik. Die grün eingerahmen Informationen, Z. B. Titel, Bildurl, Creation Date etc. kann ich mit dem unten stehenden Code auslesen. Die rot eingerahmten Informationen z. B. Firstname, Lastname, e-Mail kann ich nicht auslesen.
https://www.magentacloud.de/lnk/eiJyzZtV#file
Anbei mein bisheriger Versuch:
from urllib import request
#sends an JSON request to i-doit and return its response
def IdoitApiConnector(command):
req = request.Request('http://usermanagement.mgmt.domain.com/src/jsonrpc.php', command.encode('utf-8'))
req.add_header('Content-Type', 'application/json')
response = request.urlopen(req)
return response.read()
#Searches for an string in the titlefield
def SearchTitle(SearchString):
command = '{"version": "2.0",' + \
'"method": "cmdb.objects",' + \
'"params": {' + \
'"filter": {"title": "' + SearchString + '"},' + \
'"apikey": "abc123",' + \
'"language": "en"' + \
'},' + \
'"id": 1' + \
'}'
return IdoitApiConnector(command)
test = SearchTitle('Liesschen Mueller')
print(test)