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.
-
Eine Datei im Repository, die Sie als File-Service via HTTP zum Abruf bereitstellen möchten. Die Datei wird dabei über seine
x4db:/-URLreferenziert. -
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
Fileanlegen. -
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>.
<Variable name="myVar">
<Service type="File" path="x4db:/1/Project/Folder/<myVar>"/>
</Variable>
Erläuterungen:
-
Element
<Variable/>definiert in Attributnameden Namen einer Variable, z.B.myVar. -
In Attribut
pathwird 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>.
<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>
<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.
<Remainder name="myRemainderVar">
<Service type="File"
path="x4db:/1/Project/Folder/<myRemainderVar>"/>
</Remainder>
Erläuterungen:
-
Element
<Remainder/>definiert in Attributnameden Namen einer Remainder-Variable, z.B.myRemainderVar. -
In Attribut
pathwird 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>.
<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.