Hallo @bbfks,
im Goobi viewer gibt es keinen GND-Resolver. Alles was an GND-Informationen abgefragt wird passiert über einen REST Endpoint, aber nicht über einen Resolver.
Ja, für Euch ist die URN vielleicht der Schlüssel, aber nicht für alle. Deswegen wäre es fatal eine Lösung zu implementieren die nur auf einen kleinen Anwenderkreis zutrifft. Sie sollte so generisch sein, dass alle Eure Anfragen erfüllt werden, sie aber auch von allen anderen genutzt werden kann.
Ein REST Endpoint zum Beispiel:
- GET:
/rest/record/FIELDNAME/IDENTIFIER/
Könnte dann ja die folgenden URLs enthalten:
Alles wäre valide und möglich. Die alternative wäre ja den Endpoint so zu gestalten:
- GET:
/rest/record/IDENTIFIER/
Da ein Werk ja aber mehr als einen Identifier haben kann, andere Einrichtungen haben in der Vergangenheit zum Beispiel zusätzlich auch einen Allegro Identifier genutzt, müssten wir im Goobi viewer Logik implementieren das überhaupt erst einmal Identifier Felder definiert. Wir müssten also in der Konfigurationsdatei sagen:
<config>
<webapi>
<identifierFields>
<field>PI</field>
<field>URN</field>
<field>MD_HANDLE</field>
<field>MD_DOI</field>
<field>MD_ALLEGROID</field>
</identifierFields>
</webapi>
</config>
Das ist sicherlich auch möglich, erfordert aber mehr Einrichtungsaufwand und schränkt die Möglichkeiten nach außen hin auch ein weil neue Felder die ein Entwickler vielleicht gerne abfragen und probieren würde erst einmal konfiguriert und freigeschaltet werden müssten.
Die Antwort des REST Endpoints könnte dann JSON oder XML sein. Ich bevorzuge immer JSON aber der Response content type
kann ja bei jeder Anfrage einfach über den HTTP accept header
gesetzt werden. Spannend ist aber wie die Antwort dann aussehen soll. Hier habe ich von Dir leider immer noch keine konkrete Aussage bekommen was in Eurem Fall genau gewünscht ist. Ich habe mir oben nur etwas ausgedacht, technisch könnte es so aussehen:
{
"identifier": "urn:nbn:de:123:foo-bar-123459",
"identifierField": "URN",
"recordResolverLinks": {
"ppnresolver": "https://viewer.example.org/ppnresolver?id=ppn1234567890",
"urnresolver": "https://viewer.example.org/resolver?urn=urn:nbn:de:123:foo-bar-123459"
},
"sourceMetadata": "https://viewer.example.org/metsresolver?id=ppn1234567890",
"iiifManifest": "https://viewer.example.org/rest/iiif/manifests/ppn1234567890/manifest"
}
Allerdings kann man sich jetzt hier austoben. Man könnte beliebige Informationen zurückbekommen. Wie soll die Antwort hier konkret aussehen? Ich interpretiere die Anfrage hier so, als ob es Entwickler gäbe die gerne mit der Schnittstelle arbeiten würden aber nicht können. Wenn dem so ist muss es doch konkrete Fragestellungen geben die nicht beantwortet werden können. Die würde ich gerne wissen.
Viele Grüße,
Jan