Web-API verwenden


#1

Wir versuchen über die Webapi einen Vorgang zu beenden.

Dazu können wir wohl dieses Plugin https://www.goobi-marketplace.com/web-api-plugins-der-slub-dresden/ verwenden, da es in einer config-Datei aktiviert ist. (Eine andere Möglichkeit, um zu prüfen, ob das Plugin installiert ist, haben wir leider nicht)

Wenn ich nun

wget http://meingoobiserver/goobi/wi?token=meinToken&command=closeStep&stepid=meineStepid

aufrufe erhalte ich als Antwort vom Server ein 400 Bad Request. Die Authentifizierung funktioniert so weit.

Könnt ihr weiterhelfen?


#2

Hallo @bbfks

die WebAPI ist veraltet und wird nicht mehr weiterentwickelt. Anstelle dessen gibt es eine neue Goobi workflow REST API. Die Dokumentation dafür befindet sich im Handbuch in Kapitel 6.6:

Viele Grüße,

Jan :slight_smile:


#3

Hallo @jan

vielen Dank für den Hinweis! ich kann aber leider keine hinweise finden, wie die Authentifizierung geregelt ist und wie man die URLs aufruft.

Ich erhalte bei sporadischem rumprobieren nur 404.


#4

Hallo @bbfks,

das oben genannte Plugin ist nur mit der Version 1.10 von Goobi workflow kompatibel und kann daher mit aktuellen Goobi workflow Versionen nicht eingesetzt werden.

Zur Konfiguration der Zugriffsberechtigung dient die Datei goobi_webapi.xml.

Viele Grüße,
Robert Sehr


#5

ich versuche was ganz einfaches:

https://meinserver/help

Das ist in der config angegeben, in der Doku aber nicht beschrieben. ich habe auch /closestep versucht. Es kommt aber immer nur 404 als Antwort. Auch mit /viewer/help oder /api/help oder /viewer/api/help kommt nichts.

In der Doku ist leider nicht beschrieben, wie man den Token mitschickt.


#6

Probieren Sie bitte folgendes für die Nutzung der WebAPI:
https://example.com/goobi/wi?command=help&token=PASSWORD

Für die REST-API sollte ein Aufruf in etwa wie folgt aussehen:
https://example.com/goobi/api/closestep/{ID}

Das Passwort kann dabei entweder als header Parameter mitgeschickt werden oder bei GET Aufrufen auch mittels ?token=PASSWORD angehängt werden.


#7

Jetzt hat’s geklappt! Mit dem einen:

curl -X POST --header "token:LALALA"  https://example.com/goobi/api/closestep/{stepid}

Ich halte das mal als erfolgreich fest.

Die Möglichkeiten aus der Api-Doku funktionierten leider nicht.

Vielen Dank!!