File-Webservice bereitstellen
Zusätzlich zur Möglichkeit, X4-Prozesse als ReSTful-Services via HTTP(S) bereitzustellen, lassen sich auch statische Datei-Ressourcen aus dem Repository als Service via HTTP GET bereitstellen.
Voraussetzungen:
- Eine Datei im Repository, die Sie als File-Service via HTTP zum Abruf bereitstellen möchten. Die Datei wird dabei über seine
x4db:/-URL
referenziert. - Ein URL-Part, über den die Datei via HTTP(S) erreichbar sein soll, z.B. über
http://localhost:8080/X4/httpstarter/ReST/MyFile
. Diesen URL-Part haben Sie bereits (als Konstante, Variable oder Remainder) innerhalb der Webservice-Konfiguration definiert, siehe Webservice-Konfiguration grafisch bearbeiten.
Datei-Ressource via HTTP bereitstellen
Unter der gewünschten URL-Ressource (definiert z.B. durch einen konstanten oder variablen URL-Part) über das Kontextmenü Add File Service einen neuen Service-Eintrag vom Typ
File
anlegen.Unter Path den
x4db:/
-Pfad zur gewünschten Datei im Repository hinterlegen, deren Inhalt als Datei-Ressource via HTTP unverändert bereitgestellt werden soll.Im X4 Webservice Configuration Editor können Sie eine Datei aus dem Repository auch per Drag & Drop auf das Feld Path zuweisen.- Bei Bedarf die Sicherheitseinstellungen (Guest Allowed, Token Return etc.) anpassen.
- Speichern und mit Reload on Server die Webservice-Konfiguration anwenden.
Die Änderungen sind sofort aktiv und Ihr File-Webservice wurde bereitgestellt.
File-Webservices mit Variablen nutzen
Die Pfadangabe zur Repository-Datei in Attribut path
können Sie dynamisch aufbauen, indem Sie den File-Service in einem Variablen-Block definieren, etwa für wechselnde Dateinamen oder IDs innerhalb eines variablen URL-Parts. Die Zuordnung erfolgt anhand des Variablennamens, z.B. <myVar>
.
Beispiel: Definition eines FILE-Services als Konstante (Auszug aus restconfig.xml)
<Variable name="myVar">
<Service type="File" path="x4db:/1/Project/Folder/<myVar>"/>
</Variable>
Erläuterungen:
- Element
<Variable/>
definiert in Attributname
den Namen einer Variable, z.B.myVar
. - In Attribut
path
wird diese Variable an beliebiger Stelle innerhalb derx4db:/
-URL als Platzhalter referenziert, auch Mehrfachnennungen des Platzhalters sind möglich. - Der Platzhalter beginnt immer mit einer spitzen öffnenden Klammer
<
(<
im XML-Speicherformat), gefolgt vom Variablennamen und einer spitzen schließenden Klammer>
.
Beispiel: Variablen-Platzhalter an beliebiger Stelle platziert (Auszug aus restconfig.xml)
<Constant value="varied_1">
<Variable name="VAR">
<Service type="File" path="x4db:/1/RestExamples/file/varied_1/<VAR>"/>
</Variable>
</Constant>
<Constant value="varied_2">
<Variable name="VAR">
<Service type="File" path="x4db:/1/RestExamples/file/varied_1/<VAR>.png"/>
</Variable>
</Constant>
Beispiel: Kombinierte Variablen (Auszug aus XML-Speicherformat)
<Constant value="varied_3">
<Variable name="TYPE">
<Variable name="PART">
<Service type="File"
path="x4db:/1/RestExamples/file/deep/<TYPE>/<PART>.<TYPE>"/>
</Variable>
</Variable>
</Constant>
<Constant value="varied_4">
<Variable name="VAR">
<Constant value="image">
<Service type="File"
path="x4db:/1/RestExamples/file/varied_1/<VAR>.png"/>
</Constant>
</Variable>
</Constant>
File-Webservices mit Remainder nutzen
Wenn Sie einen File-Webservice mit beliebigen URL-Parts definieren möchten, können Sie auf das Remainder-Konstrukt zurückgreifen. Als tolerantere Variante einer Variablen bietet dieses die Möglichkeit, beliebig tiefe URL-Parts abzufangen. Analog zu Variablen definieren Sie hier einen Remainder mit einem Namen und referenzieren diesen in Attribut path
.
Beispiel: Definition eines FILE-Services mit Remainder (Auszug aus XML-Speicherformat)
<Remainder name="myRemainderVar">
<Service type="File"
path="x4db:/1/Project/Folder/<myRemainderVar>"/>
</Remainder>
Erläuterungen:
- Element
<Remainder/>
definiert in Attributname
den Namen einer Remainder-Variable, z.B.myRemainderVar
. - In Attribut
path
wird diese Variable an beliebiger Stelle innerhalb derx4db:/
-URL als Platzhalter referenziert. Auch Mehrfachnennungen des Platzhalters sind möglich. - Der Platzhalter beginnt immer mit einer spitzen öffnenden Klammer
<
(bzw.<
im XML-Speicherformat), gefolgt vom Variablennamen und einer spitzen schließenden Klammer>
.
Beispiel: Weitere Beispiele für Remainder (Auszug aus XML-Speicherformat)
<Constant value="deep_1">
<Remainder name="VAR">
<Service type="File"
path="x4db:/1/RestExamples/file/deep/<VAR>"/>
</Remainder>
</Constant>
<Constant value="deep_2">
<Remainder name="VAR">
<Service type="File"
path="x4db:/1/RestExamples/file/deep/<VAR>.png"/>
</Remainder>
</Constant>
Caching von bereitgestellten Datei-Ressourcen
Jede Datei-Ressource, die über einen File-Webservice per HTTP GET bereitgestellt wird, ist 10 Stunden gültig. Der Client (z.B. ein Web-Browser) ruft die Ressource also erst nach Ablauf dieser Frist erneut auf.
Um für Entwicklungs- und Testzwecke die aktuelle Ressource zu laden, setzen Sie im Client den Cache manuell zurück oder deaktivieren diesen.