PORTAL und PPS Knowledge Base

API 1.0 Dokumentation (PRINT PPS)

Die interaktive Entwickler-Dokumentation der PRINT PPS API kann im System über die allgemeine Verwaltung erreicht werden. Voraussetzung hierfür ist die Berechtigung “Zugang zur API-Dokumentation”.

Funktionalitäten der API 1.0 Dokumentation

  • Aufbau nach Open-API-Spezifikation

  • Downloadmöglichkeit der Spezifikation im JSON-Format

  • Einfache Nutzung dank “Try it out”-Funktion

Inhaltsverzeichnis

Allgemeine Beschreibung

Open API Spezifikation

Die API-Dokumentation ist als interaktive Dokumentation für berechtigte Benutzer:innen direkt im PRINT PPS unter /api-dokumentation erreichbar. Die Spezifikation kann als JSON-Datei heruntergeladen werden und in REST-Clients wie z. B. Postman importiert werden, um direkt mit der Bedienung zu starten.

Das swagger-File kann auch hier heruntergeladen werden (Stand: Oct 10, 2022):

 

Interaktive Dokumentation im PRINT PPS

Verfügbare API Endpunkte

Replicas

  • GET /replicas: Find Replicas

Gibt eine paginierte Liste an Ausgaben nach den gesetzten Filtern aus.

Issues

  • GET /replicas/{replica_id}/issues: Find Issues

Gibt eine paginierte Liste an Ausgaben nach den gesetzten Filtern aus.

Collections

  • GET /replicas/{replica_id}/collections: Find Collections

Gibt eine paginierte Liste an Sammlungen nach den gesetzten Filtern aus.

Articles

  • GET /issues/{issue_id}/articles: Find Articles

Gibt alle Artikel mit der gesetzten Ausgaben-ID aus.

  • GET /colletions/{colletion_id}/articles: Find Articles

Gibt alle Artikel mit der gesetzten Sammlungs-ID aus.

  • GET /articles/{article_id}: get by ID

Gibt den Artikel mit der gesetzten Artikel-ID aus.

  • GET /related_articles/{article_id}: get copies and inherited articles

Gibt alle Kopien und Vererbungen des Artikels mit der gesetzten Artikel-ID aus.

  • GET /articles/{article_id}/exportlog: get Import/Export Log Entries

Gibt das Import/Export-Protokoll des Artikels mit der gesetzten Artikel-ID aus.

  • POST /articles/{article_id}/exportlog: add Import/Export Log Entry

Befüllt das Import/Export-Protokoll des Artikels mit der gesetzten Artikel-ID.

  • GET /articles/categories: Get all Article Aategories

Gibt eine Liste aller im PRINT PPS hinterlegten Kategorien zurück.

  • GET /articles/status: Get all Article Status

Gibt alle Status zurück.

  • GET /articles/content_type: Get all Article Content Types

Gibt alle Inhaltsarten zurück.

Images

  • GET /images/{image_id}: return Image with ID

Gibt das Bild mit der gesetzten Image-ID zurück.

Autorisierung

Autorisierung über OAuth & Access-Token

Um Zugriff auf die API zu erhalten, wird ein Access-Token benötigt. Dieses kann sich über einen speziellen Endpunkt generieren, indem sich mit Client ID und Client Secret authentifiziert wird:

Prefix

/oauth/v2

Methode:

GET /token

Parameter:

  • grant_type Muss immer den Wert client_credentials haben

  • client_id Die Client-/Public-ID

  • client_secret Das Secret (Passwort)

Rückgabewert:

  • Eine AccessToken Datenstruktur (Bearer)

Diese API-Credentials (Client ID und Client Secret) können über die Verwaltung von API Zugängen von berechtigten Benutzer:innen selbst erstellt werden.

Autorisierung über OAuth & Access-Token

Um Zugriff auf die API zu erhalten, wird ein Access-Token benötigt. Dieses kann über einen speziellen Endpunkt generiert werden, indem mit Client ID und Client Secret authentifiziert wird.

Diese API-Credentials (Client ID und Client Secret) können über die Verwaltung von API Zugängen von berechtigten Benutzer:innen (Berechtigung “API Zugänge verwalten”) selbst erstellt werden.

Nach einer gewissen Zeit läuft die Autorisierung ab, sodass die Try-it-out-Funktion nicht mehr funktioniert. In diesem Fall müssen Benutzer:innen das Formular erneut öffnen und sich aus- und wieder einloggen. Dann funktioniert die Try-it-out-Funktion wieder wie erwartet. 

Interaktive Bedienung - Try it out

Die API 1.0 Dokumentation kann bereits ohne große Programmierkenntnisse oder ein darauf ausgerichtetes Programm bedient werden. Hierfür gibt es die “Try it out”-Funktion.

Jeder Endpunkt der Dokumentation hat einen “Try it out”-Button. Hierüber können Daten nach den im Front-End vorliegenden Filtern aus dem Live-System abgerufen werden. Bedingung für das Benutzen der Funktion ist ein gültiger API Key.

Auch zur Nutzung der Try-it-out-Funktion in der API 1.0 Dokumentation ist eine Authentifizierung mittels Client-Credentials erforderlich. Es muss hierfür kein Access-Token angefordert werden.

Das Formular zur Autorisierung kann über den grünen Button “Authorize” in jedem Modul aufgerufen werden.

Mit den API-Zugangsdaten sollte sehr sorgsam umgegangen werden, da durch diese Daten aus dem PRINT PPS abgerufen oder geändert werden können. Aus diesem Grund sollte auch die Berechtigung zur API-Verwaltung nur ausgewählten internen Kolleg:innen gegeben werden. Sollten hierbei Fragen aufkommen, können Sie sich gerne an uns wenden.

 

Parameter

Je nach API-Endpunkt liegen verschiedene Parameter vor, die zur Bedienung der API herangezogen werden können. Welcher Datentyp für den jeweiligen Filter genutzt werden kann, findet sich unter “Schema”.

Request Body

Um einen Request an die API zu senden, ist für jeden Endpunkt eine bestimmte Struktur für die PRINT PPS API festgelegt. Diese findet sich im Request-Body der API Dokumentation an allen schreibenden Endpunkten (POST).

Response

Der Bereich “Response” beschreibt die möglichen Response-Codes, die für den Endpunkt verfügbar sind. Außerdem liegt ein Beispiel-body (“Example Value”) vor, über den sich die Struktur des Response identifizieren lässt.

Schema

Über Schema lassen sich die Datentypen für jeden Parameter pro Endpunkt identifizieren.

Trouble Shooting bei HTTP-Status-Codes

400 - Bad Reqest

Der Request war nicht akzeptabel.

Das liegt oft an einem fehlenden Parameter. Hier ist der gesendete Request-Body zu prüfen*.

Eine weitere Ursache bei GET -Requests ist das harte Limit von maximal 10.000 Results. Wir empfehlen daher, die Abfragen noch weiter einzugrenzen z. B. monats- oder ortsweise, um so die Grenze zu umgehen.

404 - Not Found

Der gesuchte Inhalt konnte nicht gefunden werden bzw. die gesetzten Filter finden keine Ergebnisse.

 

Verwandte Seiten

 


Nur für PEIQ-Mitarbeiter:innen
https://peiq.atlassian.net/wiki/x/LQBzR