Zum Inhalt

API

Coscine verfügt über eine Programmierschnittstelle, mit der sich Arbeitsabläufe automatisieren lassen.

Coscine REST API

Mit Coscine kann über eine REST Schnittstelle (REpresentational State Transfer) interagiert werden. Dazu benötigen Sie zunächst ein Zugriffstoken, welches Sie in Ihrem Benutzerprofil anlegen können (siehe Zugriffstoken erstellen). Um sich mit den einzelnen Funktionen und deren Benutzung vertraut zu machen, sollten Sie einen Blick in die API Dokumentationsseite werfen. Dort können Sie die Funktionen auch mit eigenen Parametern testen.

API Dokumentation

Die Coscine REST API wurde mittels Swagger entworfen und dokumentiert. Auf der eigens dafür eingerichteten API Dokumentationsseite finden Sie Informationen zu den API Endpunkten und können die API direkt live mittels eines API-Tokens austesten. Alternativ gibt es eine zweite interaktive Dokumentationsseite, mit der Sie für konkrete Endpoints ausführbare Beispiele in verschiedenen Programmiersprachen erzeugen können.

Coscine API Swagger Dokumentation Interaktive Coscine API Dokumentation

Wichtige Informationen

Rate limiting

Coscine beschränkt die API requests pro Minute auf 500. Das heißt innerhalb einer Minute dürfen Sie nicht mehr als 500 requests machen. Wird dieser Schwellenwert überschritten, kann es dazu kommen, dass Ihre Anfragen für einige Zeit von Coscine ignoriert werden. Sinn und Zweck des ganzen ist die Vermeidung einer Überlastung der Coscine Server - sei es eine unbewusste oder eine gezielte mit bösen Absichten hervorgerufene Überlastung.
Entwickler, die eine sequentielle Anbindung an die API benutzen, werden den Schwellenwert sehr wahrscheinlich nicht überschreiten. Sollten Sie allerdings bestimmte Abläufe parallelisieren oder asynchrone Anfragen versenden, sollten Sie sich vorher Gedanken machen, wie Sie unter 500 Anfragen pro Minute bleiben können.
Es schadet nicht vorab eine kleine Rechnung anzustellen, mittels der Sie eine grobe Schätzung hinsichtlich der durchschnittlichen API Nutzung erhalten können. Dazu wählen Sie einfach eine variable round trip time (RTT) und multiplizieren diese mit der Anzahl requests X, die Sie parallel oder asynchron versenden können bzw. maximal erreichen werden. Falls Sie z.B. einen ThreadPool nutzen, entspräche dies der Anzahl der verwendeten threads.
Dauert es durchschnittlich 0.5 Sekunden bis Ihre Anfrage Coscine erreicht und Sie eine Antwort erhalten, können Sie X Anfragen pro 0.5 Sekunden versenden. Ist nun z.B. ihr X=8 und RTT=0.5s, können Sie 8*(1/0.5s) = 16 Anfragen pro Sekunde versenden. Multiplizieren Sie dies mit 60 Sekunden, so erhalten Sie die erwarteten Anfragen pro Minute (unter optimalen Bedingungen) - in unserem Rechenbeispiel wären das also 960 Anfragen pro Minute, womit wir die erlaubten 500 pro Minute um fast das doppelte überschritten haben.

Page Size

Einige API-Endpoints arbeiten mit großen Mengen an Daten. Damit nicht all diese Daten auf einmal in einer großen response versendet werden müssen, teilt Coscine große Datenmengen in viele kleinere (pages) auf und indiziert diese jeweil mit einem Index. Sie können die Größe dieser pages, d.h. die Anzahl der Elemente die sie enthalten selbst festlegen, allerdings ist die maximale Anzahl der Elemente pro page auf 50 limitiert. Darüber hinaus können Sie einzelne pages über ihren Index anfordern. Wichtig dabei ist, dass sich der Index abhängig von der gewählten Anzahl der Elemente ändert. Auch die Anzahl der pages ändert sich dabei.
Um alle Daten eines paginierten Endpoints zu erhalten, müssen Sie alle pages anfordern und die Resultate am Ende zusammenfügen.

File Actions

Coscine bietet für Dateien in Ressourcen sogenannte presigned-URLs an, mit denen Nutzer direkten Zugriff auf Dateien erhalten, ohne sich vorher mittels eines API-Tokens legitimieren zu müssen. Diese URLs sind für einen Zeitraum von 24 Stunden gültig und verfallen nach Ablauf dieser Zeitspanne.
Um die Gültigkeit aufrecht zu erhalten, müssen die URLs über ein neues request neu angefordert werden. Coscine erstellt die URLs automatisch serverseitig.

Nutzung der API

Nutzung eines bestehenden API-Clients

Die Coscine REST API können Sie mit einer Vielzahl an Programmiersprachen nutzen. Eine Client-Bibliothek in der Programmiersprache Python wird derzeit aktiv von der Coscine Nutzerbase gepflegt:

Coscine Python SDK Coscine Python SDK Dokumentation

Kontaktieren Sie uns gerne, wenn Sie ein Script oder eine Bibliothek zur Interaktion mit Coscine geschrieben haben, und dies auch anderen Nutzern zugänglich machen möchten. Coscine und dessen Nutzer profitieren als Open-Source Projekt direkt von Beiträgen der Community. Gemeinsam lässt sich mehr erreichen - zögern Sie daher nicht Ihre Arbeit auch nach außen zu tragen, sofern Ihnen dadurch kein Nachteil entsteht.

Entwicklung eines eigenen API-Clients

Mithilfe von Swagger können API Clients erstellt werden, mit denen Sie die Coscine API in einer Vielzahl von Programmiersprachen nutzen können. Hierfür muss die Swagger Spezifikation zur API heruntergeladen, die gewünschte Programmiersprache (z.B. Python) ausgewählt werden und anschließend können die entsprechenden Clients erstellt werden. Dadurch können eigene API Anwendungen erstellt und an die individuellen Bedürfnisse angepasst werden, z.B. wenn Community Projekte wie das Coscine Python SDK sich für die eigenen Anforderungen nicht passend herausstellen. Weiterführende Informationen finden Sie in der Dokumentation des Swagger-Projekts.

Automatisch generierte API Clients Coscine API Swagger Spezifikation

Unterstützung bei der technischen Adaption

Innerhalb der Coscine Community hat sich die Coscine Technical Adaption Group (CTA) formiert, die Forscherinnen und Forscher bei der technischen Adoption von Coscine unterstützt. Konkret werden Skripte, Programme, Best Practices und Beratungsangebote an Nutzer kommuniziert. Um ein möglichst breites Angebot an Unterstützung anbieten zu können ist die Mitarbeit von Nutzern erwünscht. So sind Community-Projekte, die auch für andere Forschende von Interesse wären, immer gern gesehen und werden daher auch gerne mit in das Angebot mit aufgenommen und an Nutzer kommuniziert.
Die CTA Gruppe steht in ständigem Austausch mit Nutzern von Coscine und dem Coscine Entwicklerteam selbst und ist somit immer über neueste Entwicklungen oder feature requests im Bilde.
Weitere Informationen finden Sie auf der Landing Page der CTA Gruppe:

Coscine Technical Adaption

Dort finden Sie auch eine Möglichkeit, mit Mitgliedern der Gruppe in Kontakt zu treten.