InGrid-API
Allgemeines¶
Die InGrid-API dient als zentrale Schnittstelle für die InGrid-Datensätze. Sie befindet sich noch in der Entwicklung und wird derzeit nur vom InGrid Portal verwendet.
Die InGrid-API liefert die Ergebnisse aus verschiedenen Datenquellen aufgearbeitet zurück, so dass diese vom Portal dargestellt werden können. Den kompletten Funktionsumfang erfahren Sie weiter unten.
Systemvoraussetzungen¶
Systembestandteil | Anforderung | |
---|---|---|
Hardware | Arbeitsspeicher | 128 MB RAM |
Festplattenspeicher | 80 MB frei | |
Prozessor | Dual Core CPU | |
Software | Java | Java 17 |
Elasticsearch | Version 8.x |
Installation¶
Info
Neben der InGrid-API muss zusätzlich Elasticsearch eingerichtet werden.
Die Installation der InGrid-API kann mit Docker oder direkt aus dem GitHub-Repository erfolgen. Im Folgenden sind Beispiele und Anleitungen dazu aufgelistet.
Docker¶
-
Docker-Image
Zur Installation kann das folgende Docker-Image verwendet werden:
ingrid-api:
image: docker-registry.wemove.com/ingrid-api
restart: unless-stopped
environment:
- ES_HOST=elastic
- ES_USERNAME=elastic
- ES_PASSWORD=admin
From Source¶
Um die InGrid-API direkt auf einem System zu installieren, müssen folgende Vorbedingungen erfüllt sein:
- Elasticsearch 8.x
- Gradle 8.x
- Java 17
Die Installation der InGrid-API (z.B. nach /opt/ingrid/ingrid-api
) erfolgt dann mit diesen Schritten:
InGrid-API klonen und bauen¶
git clone https://github.com/informationgrid/ingrid-api
cd ingrid-api
./gradlew clean buildFatJar -x test
InGrid-API installieren¶
InGrid-API starten¶
Konfiguration¶
Umgebungsvariablen¶
Alle Umgebungsvariablen im Überblick
Variable | Hinweis | Defaultwert |
---|---|---|
CONTEXT_PATH | Der Kontextpfad unter dem die API laufen soll | / |
ES_HOST | Die IP/URL zur Elasticsearch Instanz | localhost |
ES_PORT | Der Port, unter dem Elasticsearch erreichbar ist | 9200 |
ES_HTTPS | Wenn Elasticsearch unter HTTPS erreichbar ist, dann muss diese Option gesetzt werden | false |
ES_USERNAME | Wenn abgesichert, dann kann hier der Benutzername definiert werden | |
ES_PASSWORD | Wenn abgesichert, dann kann hier das Passwort definiert werden |
REST-API¶
Es folgt eine Auflistung mit den möglichen REST-Anfragen für das Codelist-Repository. Über die Swagger-UI kann die aktuelle API ebenfalls abgerufen werden. Diese ist erreichbar unter http(s)://<ingrid-api>/portal
Typ | Anfrage | Beschreibung |
---|---|---|
GET | /portal/catalogs | Alle Katalog, die mindestens einen Datensatz beinhalten |
GET | /portal/catalogs/{id}/hierarchy | Hierarchische Struktur der Datensatzes eines Katalogs mit der angegebenen id |
POST | /portal/search | Enthält eine Elasticsearch-Suchanfrage im Body und gibt dessen Ergebnis zurück. Es wird automatisch auf den aktivierten Indizes gesucht. |