X4 Produktdokumentation

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

  1. 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.

  2. 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.

  3. Bei Bedarf die Sicherheitseinstellungen (Guest Allowed, Token Return etc.) anpassen.

  4. 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>.

XML
<Variable name="myVar">
	<Service type="File" path="x4db:/1/Project/Folder/&lt;myVar>"/>
</Variable>

Erläuterungen:

  • Element <Variable/> definiert in Attribut name den Namen einer Variable, z.B. myVar.

  • In Attribut path wird diese Variable an beliebiger Stelle innerhalb der  x4db:/-URL als Platzhalter referenziert, auch Mehrfachnennungen des Platzhalters sind möglich.

  • Der Platzhalter beginnt immer mit einer spitzen öffnenden Klammer < (&lt; im XML-Speicherformat), gefolgt vom Variablennamen und einer spitzen schließenden Klammer >

XML
<Constant value="varied_1">
	<Variable name="VAR">
		<Service type="File" path="x4db:/1/RestExamples/file/varied_1/&lt;VAR>"/>
	</Variable>
</Constant>
<Constant value="varied_2">
	<Variable name="VAR">
		<Service type="File" path="x4db:/1/RestExamples/file/varied_1/&lt;VAR>.png"/>
	</Variable>
</Constant>
XML
<Constant value="varied_3">
	<Variable name="TYPE">
		<Variable name="PART">
			<Service type="File" 
             path="x4db:/1/RestExamples/file/deep/&lt;TYPE>/&lt;PART>.&lt;TYPE>"/>
		</Variable>
	</Variable>
</Constant>
<Constant value="varied_4">
	<Variable name="VAR">
		<Constant value="image">
			<Service type="File" 
             path="x4db:/1/RestExamples/file/varied_1/&lt;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.

XML
<Remainder name="myRemainderVar">
	<Service type="File" 
     path="x4db:/1/Project/Folder/&lt;myRemainderVar>"/>
</Remainder>

Erläuterungen:

  • Element <Remainder/> definiert in Attribut name den Namen einer Remainder-Variable, z.B. myRemainderVar.

  • In Attribut path wird diese Variable an beliebiger Stelle innerhalb der  x4db:/-URL als Platzhalter referenziert. Auch Mehrfachnennungen des Platzhalters sind möglich.

  • Der Platzhalter beginnt immer mit einer spitzen öffnenden Klammer < (bzw. &lt; im XML-Speicherformat), gefolgt vom Variablennamen und einer spitzen schließenden Klammer >

XML
<Constant value="deep_1">
	<Remainder name="VAR">
		<Service type="File" 
         path="x4db:/1/RestExamples/file/deep/&lt;VAR>"/>
	</Remainder>
</Constant>
<Constant value="deep_2">
	<Remainder name="VAR">
		<Service type="File" 
         path="x4db:/1/RestExamples/file/deep/&lt;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.