von Patrick Gundlach |

PDF as a Service

Im Rahmen des Pro-Pakets ist die Software-as-a-Service Schnittstelle zum speedata Publisher nun in der Beta-Phase.

Was ist die SaaS-API?

Immer wieder kommt die Frage auf, ob der speedata Publisher auch über das Internet ohne Installation nutzbar ist. Dank der SaaS-API ist das nun möglich. Unter https://api.speedata.de kann per REST-API der speedata Publisher angesprochen werden.

Dazu werden aus einer Anwendung heraus Daten und Layout per HTTP-POST-Request an api.speedata.de gesendet. Anschließend kann das PDF mit einem GET-Request herunter geladen werden.

Das Vorgehen sieht im Prinzip so aus:

Daten zum Server senden

Die Daten, die für den Publishing-Prozess benötigt werden, müssen als JSON-Datei kodiert an den Server gesendet werden. Die Datei hat folgenden Aufbau:

{
    "files": [
        {
            "filename": "layout.xml",
            "contents": "PExheW91dAog..."
        },
        {
            "filename": "data.xml",
            "contents": "PGRhdGE+CiAg..."
        }
    ]
}

Der Inhalt (contents) der Date ist base64-Kodiert. Auf dem Server werden diese Dateien in ein Verzeichnis kopiert und ein PDF daraus erzeugt. Dazu übergibt man diese Datei per POST an https://api.speedata.de/v0/publish, das einen speedata Publisher Prozess startet. Die Rückgabe des POST-Requests ist eine ID, mit der später der Status der Verarbeitung ausgelesen bzw. das PDF selbst herunter geladen werden kann.

Mit einem GET-Request auf https://api.speedata.de/v0/pdf/ wird auf das Ende des Publishing-Prozesses gewartet und das PDF geladen.

Externe Ressourcen

Meist werden im Katalog Schriftdateien und Bilder eingebunden. Es gibt zwei Möglichkeiten, diese über die Schnittstelle in das Dokument einzubinden:

  1. Mit dem Aufruf des Publishing-Prozesses wird eine JSON-Datei hochgeladen. Hier kann man alle weiteren Ressourcen mitgeben.
  2. Dateien können auch über http(s) referenziert werden. Damit kann man die Dateien auf einem eigenen Server bereit stellen und über das Layout bzw. die Daten referenzieren.

Sicherheit

Sicherheit bzw. die Vertraulichkeit der Daten gehört zum grundlegenden Design der API. Jeder Aufruf muss authentifiziert werden und jeder Aufruf kann nur die eigenen Prozesse sehen. Außerdem werden die Aufrufe so gestartet, dass es nicht möglich ist, andere Dateien zu lesen bzw. zu überschreiben.

Weitere Informationen

In der Anleitung unter doc.speedata.de/publisher/de/saasapi/ steht beschrieben, wie ein Aufruf stattfinden muss.

Es gibt für die Programmiersprache Go eine beispielhafte Implementierung, die die Vorgehensweise zeigt. Siehe dazu das GitHub Repository auf https://github.com/speedata/publisher-api.