REST-API: query und 301

Liebe alle,

ich versuche mit der REST-API zu sprechen, v.a. query. Ich verwende dabei Visual Studio Code; mit der REST Client-Extension sieht das dann so aus:

POST https://viewer.goobi.io/api/v1/index/query HTTP/1.1

Accept: */*
Content-Type: application/json
{
    "query": "+DOCSTRCT:monograph",
    "resultFields": [
    "PI*",
    "IDDOC",
    "DOCTYPE",
    "DOCSTRCT",
    "LABEL"
  ]
}

Leider bekomme ich aber nur so etwas.

HTTP/1.1 301 301
Date: Mon, 07 Nov 2022 14:38:26 GMT
Server: Apache
Strict-Transport-Security: max-age=15768000
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Location: /api/v1/index/query/
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
Access-Control-Max-Age: 600
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Expose-Headers: Content-Security-Policy, Location
Content-Security-Policy: frame-ancestors 'self';
Connection: close
Transfer-Encoding: chunked

Was fehlt mir den hier, dass ich entsprechende Werke als Ergebnisse erhalte?

Vielen dank und Grüße

Hallo,

301 ist der Status-Code für eine Umleitung - und die Extension für Visual Studio Code folgt dieser anscheinend nicht. curl hat mir verraten, dass am Ende der URL einfach nur ein / fehlt:

https://viewer.goobi.io/api/v1/index/query/

Viele Grüße
Sebastian

1 Like

Die URL steht auch in der Antwort von @bbfks1 unter Location:

Hallo, ihr beiden,

vielen dank für die Hinweise. Ich verfolge gerade die Spuren:

  • das, was @sebastian.kutsch meint, stimmt: die extension folgt wohl dem redirect nicht. curl braucht den slash …
  • löst man die weiterleitung auf mit
    curl -s -L -D - https://viewer.goobi.io/api/v1/index/query -o /dev/null -w '%{url_effective}'
    , sagt curl: https://viewer.goobi.io/api/v1/index/query/% - Ein Post auf https://viewer.goobi.io/api/v1/index/query/% bringt ein 404.
  • die extension hat ein feature rest-client.followredirect, das aktiviert ist.

Es liegt also irgendwie am Tool, irgendwie am Redirect und weniger an der Schnittstelle. Wenn curl die Referenz ist, ist alles in Ordnung :smiley:

Ich suche weiter … Vielen Dank!

Hallo,

mit der REST Client for Visual Studio Code (Huachao Mao) extension bekomme ich so die Ergebnisliste:

POST https://viewer.goobi.io/api/v1/index/query/ HTTP/1.1
Accept: */*
Content-Type: application/json

{
    "query": "+DOCSTRCT:monograph",
    "resultFields": [
    "PI*",
    "IDDOC",
    "DOCTYPE",
    "DOCSTRCT",
    "LABEL"
  ]
}

Problematisch waren der fehlende / und eine nicht erlaubte Leerzeile zwischen der POST-Zeile und den Headern.

Mit curl (das Pipen durch jq ist optional, macht es aber lesbar):

curl https://viewer.goobi.io/api/v1/index/query/ -H 'Content-Type: application/json' -d '{"query": "+DOCSTRCT:monograph","resultFields":["PI*","IDDOC","DOCTYPE","DOCSTRCT","LABEL"]}' | jq
1 Like

Danke! Danke! Danke!

Oh, Wahnsinn! EINE LEERZEILE!!!11elf

EINE

LEERZEILE!

Ich fass ’ es nicht. Warum bin ich nicht bei Java geblieben. Schöner Compiler, schöne Syntaxprüfung! Durchdachte Programmiersprachen mit hilfreichen Tools. Feine Sache …

So, jetzt, an die Arbeit … ne Leerzeile … ich hab ja schon viel erlebt, aber das …

1000sten Dank!! :star_struck: