An unsere Daten kommen!
In der modernen Webentwicklung ist die Softwareentwicklung nach den REST-Prinzipien der gängige Standard. Diesem Standard sehen wir uns ebenfalls verpflichtet. Erstmals beschrieben wurden die REST-Prinzipien, das Representational State Transfer, in Roy Fieldings Dissertation aus dem Jahr 2000. Seither hat sich diese Art des Softwareaufbaus als Alternative zu SOAP (Simple Object Access Protocol) und JSON (JavaScript Object Notation) etabliert. REST erlaubt dabei Zugriff auf individuelle Resources über ein Basis-Set von Befehlen: GET, POST, PUT und DELETE. Über diese Abfragen ist es gemäß der Bezeichnung möglich, Daten abzurufen (GET), Daten einzuspeisen (POST), Daten zu aktualisieren (PUT), oder aber Daten zu löschen (DELETE). Einige dieser Abfragen sollten nicht für jede*n zugänglich sein. Das Löschen, Bearbeiten, aber auch das Hinzufügen von Daten sollten nur eingeweihten Nutzer*innen möglich sein, etwa Administrator*innen. Viele Editionen nutzen diese Prinzipien um den Nutzer*innen die Datensätze, seien es Texte, Register, und Metadaten zur Verfügung zu stellen. So auch wir von den »Europäischen Religionsfrieden Digital«! Bisher sind über die Schnittstellen Texte, eine Suchfunktion und die Navigation verfügbar.
Die Schnittstellen im Detail
Die Schnittstellen gliedern sich in vier Gruppen: Solche, die die gesamte Collection betreffen, solche die einzelne Dateien betreffen, solche die die Suche betreffen und solche, die Annotationen betreffen. Nachfolgend werde ich die für Nutzer*innen zugänglichen Schnittstellen erläutern und jeweils mit einem Beispiel versehen. In unserem Fall werden die Schnittstellen wegen der Anpassungen an die Server-Infrastruktur hinter einem Proxy versteckt. Dahinter steckt allerdings wie in wdbplus vorgesehen, jeweils derselbe Serverpfad. (vgl. hier)
Collection-Schnittstellen
Unter https://exist.ulb.tu-darmstadt.de/1/r/edoc/collection/pa000008.xml erhält die Nutzerin oder der Nutzer die Möglichkeit alle Daten der Religionsfrieden zu erfassen: Über die Spezifikation einer Dateiendung (xml, oder json) am Ende lässt sich das Ausgabeformat entsprechend beeinflussen.
Über die Angabe einer Projekt-ID lassen sich projektspezifische Dateien und Informationen aus der Collection entnehmen, wie etwa die Navigation: https://exist.ulb.tu-darmstadt.de/1/r/edoc/collection/pa000008/nav.xml. Diese ist hier ist beispielsweise so eingebunden. Hier wurde die Endung auf HTML spezifiziert, der Link lautet also https://exist.ulb.tu-darmstadt.de/1/r/edoc/collection/pa000008/nav.html.
Datei-Schnittstellen
Mittels https://exist.ulb.tu-darmstadt.de/1/r/edoc/resource/pa000008-0108 können Nutzerinnen und Nutzer das Wormser Edikt herunterladen. Für die Texte muss hinter dem letzten Slash die ID dem entsprechenden Text angepasst werden. Diese Schnittstelle kommt beim Download-Link des entsprechenden Textes zum Einsatz, wie ein Blick in den Footer in einer Edition zeigt.
Weitere Anwendungsmöglichkeiten sind das ausgeben verschiedener Anzeigemöglichkeiten, bisher wird die Ausgabe ein HTML liefern. Auch hier gilt, dass über die Anpassung der Endung das Ausgabeformat beeinflusst werden kann: So liefert https://exist.ulb.tu-darmstadt.de/1/r/edoc/resource/pa000008-0108/view.xml etwa eine XML-Datei, während https://exist.ulb.tu-darmstadt.de/1/r/edoc/resource/pa000008-0108/view.json eine JSON-Datei liefert.
Such-Schnittstellen
Wir haben verschiedene Schnittstellen zum Durchsuchen einer Datei oder einer Collection. Möchte ich beispielsweise alle Texte aus der Collection der »Europäischen Religionsfrieden Digital« durchsuchen, so benötige ich dafür den Pfad: https://exist.ulb.tu-darmstadt.de/1/r/edoc/search/collection/pa000008.xml.
Der Suchparameter ?q={Suchbegriff} führt zu einer Ergebnisliste: https://exist.ulb.tu-darmstadt.de/1/r/edoc/search/file/pa000008-0108.html?q=kaiser liefert beispiels weise eine Liste aller Texte die den Suchbegriff „kaiser“ enthalten.
Selbstverständlich kann auch hier das Ausgabeformat mittels Anpassung einer Endung angepasst werden. *.html liefert eine
<ul>
<li style=“list-style-type: none“ >
</ul >
innerhalb derer die Ergebnisse als <li>Text</li> ausgegeben werden. Spezifiziert man xml als Endung, so erhält man eine XML-Datei des Musters <result><file/></result>.
Ausblick
Weitere Schnittstellen sind in der Entwicklung und sollen verschiedene Zugriffsmöglichkeiten liefern: Dies soll von verschiedenen ausgezeichneten Entitäten bis hin zu weiteren Metadaten und reichen.