ilicop.ch REST API: Unkomplizierte Validierungen aus beliebigen Clients

Eine Prüfung einer INTERLIS 2 Transferdatei direkt aus FME oder Powershell?
Der ilivalidator, das zuverlässige Werkzeug zur Prüfung von INTERLIS 1 und 2 Transferdateien, ist mit der neu verfügbaren REST API nun einfach aus beliebigen Clients nutzbar und dies mit dem gesamten bekannten Funktionsumfang. Dieser Blogbeitrag stellt die neue Schnittstelle und einige Anwendungsbeispiele vor und reiht sich in die Serie der bisherigen drei Blogbeiträge zu ilicop ein (siehe unten).

4 Methoden für die volle Kontrolle

Die API stellt vier Methoden (Upload, Status, Download & Settings) bereit, mit welcher die Validierung gestartet, kontrolliert und die Prüf-Ergebnisse heruntergeladen werden können:

  • Mit Upload wird die Transferdatei und bei Bedarf dazugehörige Dateien wie eine ILI-Modellbeschreibung oder ein externer Katalog (im ZIP-Archiv) zum Server hochgeladen. Als Antwort zum erfolgreichen Upload wird die JobId retourniert, welche dann für die folgenden Schritte benötigt wird.

  • Die Status Methode ermöglicht das Abfragen des aktuellen Standes der Validierung. Die Antwort umfasst im Falle einer abgeschlossenen Validierung die Download-Links zu den Logdateien bzw. Fehlerprotokollen:

 
 
{
    "jobId": "68d606d8-53cb-435c-a11e-915e0ab7ccf1",
    "status": "completed",
    "statusMessage": "Die Daten sind modellkonform.",
    "logUrl": "/api/v1/download?jobId=68d606d8-53cb-435c-a11e-915e0ab7ccf1&logType=log",
    "xtfLogUrl": "/api/v1/download?jobId=68d606d8-53cb-435c-a11e-915e0ab7ccf1&logType=xtf"
}
  • Mit der Settings Methode können über einen GET Request verschiedene Angaben zum Validierungsdienst angefragt werden. So wird beispielsweise die am Server verwendete ilivalidator-Version oder die akzeptierten Dateitypen angegeben:

 
 
{
    "applicationName": "INTERLIS Web-Check-Service",
    "applicationVersion": "3.0.65-beta",
    "vendorLink": null,
    "ilivalidatorVersion": "1.12.0",
    "ili2gpkgVersion": "4.9.0",
    "acceptedFileTypes": ".xtf, .itf, .xml, .gpkg, .zip"
}

Die Dokumentation der API liegt unter https://ilicop.ch/api/ vor.

Analoge Funktionalität zum Web-Client

Validierungen über die API werden genau gleich durchgeführt wie manuelle Uploads über den Web-Client https://ilicop.ch. Das heisst, auch über die API sind beispielsweise Validierungen von Geopackage-Dateien mit ili2db-Struktur oder verschärfte Prüfungen mit zusätzlichen Constraints in TOML-Konfiguration bzw. gegen erweiterte INTERLIS-Funktionen möglich. Für Kunden mit einer eigenen ilicop-Instanz ändert sich nichts und die neue Version wird automatisch aktualisiert.

Anwendungsbeispiel in FME Workbench

Wie eingangs erwähnt, ermöglicht die REST API die einfache Integration von INTERLIS-Validierungen in unterschiedlichen Clients. Auf der Hand liegt der Einsatz in FME im Zusammenhang mit Aufbereitungsprozessen in Geodaten-Infrastrukturen. Die GIS-Fachstelle Thurgau stellt uns dafür freundlicherweise das folgende Beispiel zur Verfügung. Dieses zeigt den Einsatz der asynchronen Request-Kette mit dem Upload, der Status-Prüfung (Loop) und dem Download der Prüf-Protokolle:

 

Abbildung 1 FME-Workbench mit Nutzung der ilicop REST API und den drei Hauptmethoden (gelb eingefärbt) (Beispiel zur Verfügung gestellt von der GIS-Fachstelle Thurgau, Bernd Hebel)

 

Für hochautomatisierte Anwendungen bietet sich der Health-Check (https://ilicop.ch/health) an, welcher zum Zeitpunkt des Aufrufs verschiedene Komponenten am Backend prüft und der aufrufenden Komponente antwortet, ob der Validierungsdienst zur Verfügung steht.

Weitere Anwendungsbeispiele für curl, JavaScript oder Python sind in der API-Dokumentation enthalten.

Diese Erweiterung wurde gesponsert von KOGIS sowie den Kantonen Schaffhausen und Thurgau.

Mehr zu ilicop, dessen Konfiguration, Integration und den dazugehörigen Funktionalitäten gibt’s in den früheren Beiträgen dieser Blogserie:

 
Oliver GrimmInterlis