Die REST-API kann vor allem durch externe Tools für den Zugriff auf MyCoRe-Objekte, Klassifikationen, Messages und Suchanfragen benutzt werden.
Mit dem LTS 2015.05 stellt MyCoRe eine REST-Schnittstelle bereit, die
einen nur-lesenden Zugriff auf MyCoRe-Objekte, -Derivate, Klassifikationen, I18N-Texte und den Suchindex
ermöglicht. Sämtliche Aufrufe erfolgen per GET
-Request.
Die Basis-URL der REST-API lautet: {$WebApplicationBaseURL}api/v1
.
Seit 2017.06 wird die Nutzung der REST-API durch
ACLs geschützt.
Für den lesenden Zugriff muss immer eine ACL auf restapi:/
mit dem Recht read
gesetzt sein.
Der Zugriff auf einzelne Pfade wie /objects
, /search
oder
/classifications
kann durch entsprechende ACLs (z.B. restapi:/v1/objects
)
zusätzlich beschränkt werden.
Durch Setzen entsprechender ACL-Regeln kann der Zugriff komplett freigeschaltet (TRUE
),
auf einzelne Nutzer oder Rollen beschränkt oder auf bestimmte IP-Adressen / IP-Bereiche begrenzt werden.
Dieser Request liefert eine Liste der vorhandenen MyCoRe-Objekte zurück.
format |
Mögliche Werte sind: xml (default) und json . |
||||||||
filter |
enhält eine durch Semikolon
|
||||||||
sort |
Sortierfeld und Sortierreihenfolge durch Doppelpunkt getrennt (
|
Dieser Request liefert das interne XML eines MyCoRe-Objektes zurück.
{$id} |
entspricht im Standardfall der MyCoRe-Object-ID, im Spezialfall hat die ID die Form prefix:other-id
|
style |
einziger Wert ist derivatedetails ,damit wird das XML um Informationen aus den verknüpften Derivaten angereichert |
diese URL liefert eine Liste der zu einem MyCoRe-Objekt gehörenden Derivate
{$id} |
analog zu /objects/{$id} |
format |
mögliche Werte sind: xml (default) und json |
||||
sort |
Sortierfeld und Sortierreihenfolge durch Doppelpunkt getrennt (
|
Dieser Request liefert das interne XML eines MyCoRe-Derivates zurück
{$id} |
analog zu /objects/{$id} | ||
{$derid} |
entspricht im Standardfall der MyCoRe-Derivate-ID, im Spezialfall hat die ID die Form prefix:other-id
|
Mit diesem Request lässt sich die Hauptdatei eines Derivates anzeigen. Es erfolgt ein Redirect-Request auf die MyCoRe File API.
{$id} |
analog zu /objects/{$id} |
{$derid} |
analog zu /objects/{$id}/derivates/{$derid} |
Mit diesem Request enthält man ein Directory-Listing aller im Derivate abgelegten Dateien.
{$id} |
analog zu /objects/{$id} |
{$derid} |
analog zu /objects/{$id}/derivates/{$derid} |
{$path} |
optional: Pfad zu einem Verzeichnis im Derivate, dessen Inhalt hier ausgegeben werden soll |
format |
mögliche Werte sind: xml (default) und json |
depth |
Anzahl der Verzeichnisebenen, die zurückgeliefert werden sollen (default: -1 für alle) |
Diese Funktionalität wird nicht über die REST-API, sondern über die File-API bereitgestellt. Die URL
kann man dem @href
-Attribut der Auflistung der Dateien entnehmen (siehe obige Beispiel-Requests für /objects/{$id}/derivates/{$derid}/contents).
Dieser Request listet alle in der Anwendung installierten Klassifikationen auf.
format |
mögliche Werte sind: json (default) und xml |
Dieser Request zeigt eine Klassifikation aus der MyCoRe-Anwendung an.
{$classid} | entspricht der ID einer Klassifikation |
format |
mögliche Werte sind: xml (default) und json |
||||||||||||
filter |
enhält eine durch Semikolon
|
||||||||||||
style |
enhält eine durch Semikolon
|
||||||||||||
callback |
Für format=json wird die Ausgabe in einer Javascript-Callback-Funktion mit dem angegebenen Namen gekapselt. Mittels JSONP lässt sich so die Same-Origin-Policy des Webbrowsers umgehen. |
Dieser Request listet alle in der Anwendung definierten Message-Properties auf.
format |
mögliche Werte sind: property (default, Standard-Property-Format), json und xml |
lang |
ein von der Anwendung unterstütztes Sprachkürzel (default: de ) |
filter |
eine mit Semikolon ; getrennte Liste von Message-Key-Prefixes |
Dieser Request zeigt ein einzelnes Message-Property an.
{$key} | entspricht einem Message-Key |
format |
mögliche Werte sind: text (default), property (Standard-Property-Format), xml und json |
lang |
ein von der Anwendung unterstütztes ISO-Sprachkürzel (default: de ) |
Die REST-Schnittstelle zur Suche soll vor allem als Frontend für den in der MyCoRe-Anwendung verwendeten SOLR-Server fungieren. In der Regel werden die Ausgaben des SOLR-Servers unverändert ausgeliefert.
Achtung: prototypische Implementierung
Die Parameter orientieren sich an der SOLR-Syntax. Weitere Informationen über die Syntax sind in der SOLR-Dokumentation zu finden.
q |
eine Such-Anfrage in SOLR-Query-Syntax | ||||
sort |
Sortierfeld und Sortierreihenfole in SOLR-Syntax mit Leerzeichen getrennt (
|
||||
wt |
Rückgabeformat, erlaubte Werte sind u.a.: |
||||
start |
für Treffernavigation: Position des ersten zurückgegebenen Treffers in der Trefferliste im Bezug auf die Gesamttreffermenge. |
||||
rows |
für Treffernavigation: Anzahl der Treffer (default |
||||
fq |
Filter-Query: zusätzliche Query zum Einschränken der Treffermenge. Diese Query hat keine Auswirkungen auf die Berechnung des Rankings (score) eines Treffers. |
||||
fl |
Field-List: beschränkt die in der Trefferliste zurückgelieferten Felder. |
||||
facet |
|
||||
facet.field |
wiederholbarer Parameter, der die auszugebenden Facettenfelder spezifiziert. |
||||
facet.sort |
gibt an, wie sortiert werden soll. Mögliche Werte sind count (nach Anzahl, default) und index. |
||||
facet.limit |
gibt die Anzahl der im Response enthaltenen Facetten an, Default-Wert ist 100. Eine negative Angabe bedeutet unbegrenzt. |
||||
json.wrf |
Name der Wrapper-Funktion, die die JSON-Ausgabe umschließt. Diese wird in AJAX/Javascript als Callback Funktion aufgerufen. Das HTML-Beispiel js_counting.html zeigt, wie man ein Suchergebnis per AJAX und JQuery in eine Webseite einbettet. |