Die REST-API wird von rimacon omniSuite nicht direkt unterstützt, aber durch die Nutzung von C#-Scripten lassen sich die REST-Quellen relativ leicht anbinden.
Importieren Sie die ToDos aus der Quelle https://jsonplaceholder.typicode.com/todos.
JSON-Struktur:
[ { "userId": 1, "id": 1, "title": "delectus aut autem", "completed": false }, { "userId": 1, "id": 2, "title": "quis ut nam facilis et officia qui", "completed": false }, ...
Für REST-API nutzen wir die Bibliothek RestSharp (https://restsharp.dev). In diesem Beispiel wird die Version 106.9 genutzt.
Kopieren Sie die entsprechende RestSharp.dll in das cmdbcore.exe-Verzeichnis.
Bei Import Neu ➟ Quelle Auswahl - wählen Sie C#
Jetzt die einzelnen Code-Sektionen:
Referenzen
{$CMDBCOREDIR}\RestSharp.dllUsings:
rimacon.cmdb.ExternalDataSet System.Collections.Generic RestSharp RestSharp.AuthenticatorsInterne Definitionen:
class TodoRow { public bool completed { get; set; } public int id { get; set; } public string title { get; set; } public int userId { get; set; } } List<TodoRow> CurrentData = null; int CursorIndex = 0;Open:
var client = new RestClient("https://jsonplaceholder.typicode.com"); var request = new RestRequest("/todos", DataFormat.Json); var resp = client.Execute<List<TodoRow>>(request); CurrentData = resp.Data; CursorIndex = -1; return ""; // FehlermeldungFieldInfo:
return new FieldInfo[] { new FieldInfo() { Name="completed", OriginalTypeAsString="bool", CmdbType=8, CmdbLength=-1, CmdbScale=0 }, new FieldInfo() { Name="id", OriginalTypeAsString="int", CmdbType=8, CmdbLength=-1, CmdbScale=0 }, new FieldInfo() { Name="title", OriginalTypeAsString="string", CmdbType=19, CmdbLength=-1, CmdbScale=0 }, new FieldInfo() { Name="userId", OriginalTypeAsString="int", CmdbType=8, CmdbLength=-1, CmdbScale=0 } }; // BeispielRead:
CursorIndex++; return (CurrentData != null && CursorIndex < CurrentData.Count);GetData:
errmsg= ""; // todo if (CurrentData == null || CursorIndex >= CurrentData.Count) return ""; if (index == 0) return (CurrentData[CursorIndex].completed ? 1 : 0); if (index == 1) return CurrentData[CursorIndex].id; if (index == 2) return CurrentData[CursorIndex].title; if (index == 3) return CurrentData[CursorIndex].userId; return "";Close:
if (CurrentData != CurrentData) CurrentData.Clear(); CurrentData = null;
Button "Vorschau" anklicken.
Die Quell-Konfiguration ist damit fertiggestellt und kann jetzt genauso wie andere Quellen genutzt werden.