Übersicht
Fess Admin API ist eine RESTful API für den programmatischen Zugriff auf Verwaltungsfunktionen. Die meisten Operationen, die über die Administrationsoberfläche durchgeführt werden können, wie Crawl-Konfiguration, Benutzerverwaltung und Scheduler-Steuerung, können über die API ausgeführt werden.
Mit dieser API können Sie die Konfiguration von Fess automatisieren oder mit externen Systemen integrieren.
Basis-URL
Die Basis-URL der Admin API hat folgendes Format:
Beispiel für eine lokale Umgebung:
Authentifizierung
Für den Zugriff auf die Admin API ist eine Authentifizierung mit einem Access Token erforderlich.
Access Token erhalten
Melden Sie sich in der Administrationsoberfläche an
Navigieren Sie zu „System“ -> „Access Token“
Klicken Sie auf „Neu erstellen“
Geben Sie einen Token-Namen ein und legen Sie im Feld „Berechtigungen“ die dem Token zu erteilenden Berechtigungen fest (für die Nutzung der Admin API geben Sie
{role}admin-apiein)Klicken Sie auf „Erstellen“, um den Token zu erhalten
Token verwenden
Fügen Sie den Access Token in den Request-Header ein:
Sie können Bearer auch weglassen und nur den Token angeben:
Eine Angabe als Query-Parameter ist ebenfalls möglich, ist aber standardmäßig deaktiviert. Wenn Sie in fess_config.properties unter api.access.token.request.parameter einen Parameternamen festlegen, können Sie den Token unter diesem Namen übergeben (da der Standardwert leer ist, ist nur die Angabe über den Header wirksam). Wenn Sie zum Beispiel api.access.token.request.parameter=token festlegen:
cURL-Beispiel
Erforderliche Berechtigungen
Der Zugriff auf die Admin API wird nicht pro Funktion, sondern über ein einziges Berechtigungsset gesteuert. Um einen beliebigen Endpunkt der Admin API zu nutzen, muss dem Access Token eine der Berechtigungen erteilt sein, die in fess_config.properties unter api.admin.access.permissions festgelegt sind.
Der Standardwert ist Radmin-api, was die kodierte Form der Rolle admin-api ist (das vorangestellte R ist der Wert von role.search.role.prefix). Wenn Sie beim Erstellen des Access Tokens im Berechtigungsfeld {role}admin-api eingeben, wird dies intern als Radmin-api gespeichert.
Bemerkung
Es gibt keine pro Ressource unterschiedlichen Berechtigungen (wie admin-scheduler oder admin-user) und auch keine Platzhalter (admin-*). Ein Token mit der festgelegten Berechtigung kann auf alle Admin-API-Endpunkte zugreifen. Wenn Sie die Berechtigungen ändern möchten, die den Zugriff erlauben, ändern Sie den Wert von api.admin.access.permissions.
Gemeinsame Muster
Ressourcen mit Einstellungen (webconfig, user, role usw.) folgen dem unten beschriebenen gemeinsamen CRUD-Muster. Einige Ressourcen (systeminfo, stats, storage, plugin, log, backup, documents, suggest, dict-Stamm usw.) haben jedoch eine eigene, von diesem gemeinsamen Muster abweichende Endpunktstruktur. Siehe dazu die Seite der jeweiligen Ressource.
Liste abrufen (GET /settings)
Ruft eine Liste von Einstellungen ab.
Request
Parameter (Paginierung):
| Parameter | Typ | Beschreibung |
|---|---|---|
size | Integer | Anzahl der Einträge pro Seite (Standard: 25; änderbar über paging.page.size in fess_config.properties) |
page | Integer | Seitennummer (beginnt bei 1; Standard: 1; Werte <= 0 werden als 1 behandelt) |
Response
Bemerkung
Das response-Objekt aller Antworten enthält stets version, das die Produktversion angibt (Beispiel: "15.7.0"). In den folgenden Beispielen wird es der Übersichtlichkeit halber teilweise weggelassen.
Einzelne Einstellung abrufen (GET /setting/{id})
Ruft eine einzelne Einstellung anhand der ID ab.
Request
Response
Neu erstellen (POST /setting)
Erstellt eine neue Einstellung.
Request
Response
Aktualisieren (PUT /setting)
Aktualisiert eine bestehende Einstellung.
Request
Response
Löschen (DELETE /setting/{id})
Löscht eine Einstellung.
Request
Response
Das Format der Löschantwort unterscheidet sich je Ressource (Aktion). Viele Ressourcen geben nur status zurück.
Bei einigen Ressourcen wird das Löschergebnis als ApiUpdateResponse zurückgegeben, wobei id der gelöschten Einstellung und created (beim Löschen false) hinzugefügt werden.
Außerdem kann bei Ressourcen, die ein ApiDeleteResponse zurückgeben, count (Anzahl der Löschungen, Standardwert 1) hinzugefügt werden. Das tatsächliche Format siehe auf der Seite der jeweiligen Ressource.
Response-Format
Alle Antworten werden in ein response-Objekt verpackt und enthalten stets version (die Produktversion) und status (das Verarbeitungsergebnis).
Die Werte von status sind wie folgt.
| Wert | Beschreibung |
|---|---|
0 | OK (Erfolg) |
1 | BAD_REQUEST (ungültige Anfrage) |
2 | SYSTEM_ERROR (Systemfehler) |
3 | UNAUTHORIZED (Authentifizierungsfehler) |
9 | FAILED (Verarbeitung fehlgeschlagen) |
Erfolgreiche Response
status: 0 zeigt Erfolg an.
Fehler-Response
Im Fehlerfall wird in status ein von 0 verschiedener Wert gesetzt und in message ist eine Fehlermeldung enthalten.
HTTP-Statuscodes
Die Admin API gibt in den meisten Fällen den HTTP-Status 200 zurück und stellt das Verarbeitungsergebnis im Feld status des Antwortkörpers dar. Treffen Sie die Entscheidung über Erfolg oder Misserfolg daher nicht anhand des HTTP-Statuscodes, sondern anhand des Werts von status im Antwortkörper.
Die tatsächlich zurückgegebenen HTTP-Statuscodes sind wie folgt.
| Code | Beschreibung |
|---|---|
| 200 | Normale Antwort. Neben dem Erfolgsfall ( |
| 400 | Validierungsfehler der Request-Parameter. Das Feld |
| 401 | Wenn eine Ausnahme im Zusammenhang mit der Login-Authentifizierung auftritt. Das Feld |
Bemerkung
Die Admin API gibt keine HTTP-Statuscodes wie 403, 404 oder 500 zurück. Fehlende Berechtigungen oder nicht vorhandene Ressourcen werden ebenfalls durch das im Antwortkörper der HTTP-200- oder 400-Antwort enthaltene status angezeigt.
Verfügbare APIs
Fess bietet folgende Admin APIs.
Crawl-Konfiguration
| Endpunkt | Beschreibung |
|---|---|
| WebConfig API | Web-Crawl-Konfiguration |
| FileConfig API | Datei-Crawl-Konfiguration |
| DataConfig API | Datenspeicher-Konfiguration |
Bemerkung
Darüber hinaus werden auch die folgenden Ressourcen zu Anmeldeinformationen und Crawl-Steuerung als API bereitgestellt (derzeit gibt es noch keine eigenen Seiten): webauth (Web-Authentifizierung), fileauth (Datei-Authentifizierung), reqheader (Request-Header), pathmap (Pfad-Mapping), duplicatehost (doppelte Hosts), searchlist (Such-/Dokumentlisten-Operationen).
Index-Verwaltung
| Endpunkt | Beschreibung |
|---|---|
| Documents API | Dokument-Massenoperationen |
| CrawlingInfo API | Crawl-Informationen |
| FailureUrl API | Fehlgeschlagene URL-Verwaltung |
| Backup API | Backup/Wiederherstellung |
Scheduler
| Endpunkt | Beschreibung |
|---|---|
| Scheduler API | Job-Scheduling |
| JobLog API | Job-Protokoll abrufen |
Benutzer- und Rechteverwaltung
| Endpunkt | Beschreibung |
|---|---|
| User API | Benutzerverwaltung |
| Role API | Rollenverwaltung |
| Group API | Gruppenverwaltung |
| AccessToken API | API-Token-Verwaltung |
Such-Tuning
| Endpunkt | Beschreibung |
|---|---|
| LabelType API | Label-Typen |
| KeyMatch API | Key Match |
| BoostDoc API | Dokument-Boost |
| ElevateWord API | Elevate Word |
| BadWord API | Verbotene Wörter |
| RelatedContent API | Verwandte Inhalte |
| RelatedQuery API | Verwandte Abfragen |
| Suggest API | Suggest-Verwaltung |
System
| Endpunkt | Beschreibung |
|---|---|
| General API | Allgemeine Einstellungen |
| SystemInfo API | Systeminformationen |
| Stats API | Systemstatistiken |
| Log API | Protokoll abrufen |
| SearchList API | Dokumentsuche und -verwaltung |
| Storage API | Speicherverwaltung |
| Plugin API | Plugin-Verwaltung |
Wörterbuch
| Endpunkt | Beschreibung |
|---|---|
| Dict API | Wörterbuchverwaltung (Synonyme, Stoppwörter usw.) |
Verwendungsbeispiele
Web-Crawl-Konfiguration erstellen
Bemerkung
Beim Erstellen einer Web-Crawl-Konfiguration sind name, urls, userAgent, numOfThread, intervalTime, boost, available und sortOrder erforderlich. Werden diese weggelassen, kommt es zu einem Validierungsfehler (status: 1). available wird als Zeichenkette angegeben; setzen Sie "true" oder "false".
Scheduler-Job starten
Benutzerliste abrufen
Referenzinformationen
API-Übersicht - API-Übersicht
Zugriffstoken - Access Token Verwaltungsanleitung