Entwicklung eines API V2 Search Request Response Transformer
Einführung
Der API V2 Search Request Response Transformer bietet die Funktionalität, API V2 Search Anfragen und Antworten in ein selbst definiertes Format zu Transformieren. Die Funktionalität wird durch das Erstellen eines Plugins mit dem Mindbreeze Software Development Toolkit bereitgestellt. Der SDK erzeugt ein Beispiel Plugin, das angepasst werden kann.
Vorbereitung
Zum Bauen und Erstellen eines Plugins mit dem Mindbreeze Software Development Toolkit werden folgende Software Komponenten benötigt:
- Java SE Development Kit: Version 1.8 or newer
- Eclipse IDE for Java Developers
Erzeugen eines Mindbreeze Plugin Projektes
Der Mindbreeze Software Development Toolkit beinhaltet ein Werkzeug zum Generieren eines Plugin Projektes. Das Werkzeug wird für Microsoft Windows als mesjavaplugin.bat bzw. für Linux als mesjavaplugin.sh bereitgestellt.
Mindbreeze Software Development Toolkit
Um ein Plugin Projekt für ein API V2 Search Request Transformer Plugin zu erstellen muss das Werkzeug mit folgenden Parametern aufgerufen werden:
mesjavaplugin.<sh|bat> <Plugin Type> <Name> <Base Package>
- Plugin Type: Der Plugin Typ muss searchtransformer sein.
- Name: Der Name des Plugins kann beliebig gewählt werden. In der Konfiguration des Client Service kann das Plugin mit dem angegebenen Namen ausgewählt werden.
- Base Package: Das Base Package der Java Klassen die erzeugt werden. Kann beliebig gewählt werden.
Erzeugen eines Plugins
Der Mindbreeze Software Development Toolkit erzeugt ein Plugin Projekt das unter dem angegebenen Namen im aktuellen Verzeichnis verfügbar ist.
- Plugin Projekt in Eclipse importieren.

- Eine Basis Implementierung des Plugins ist unter dem Namen <Name>APIV2SearchRequestResponseTransformerService.java verfügbar.
- Zum Erstellen des Plugins muss build.bat (Microsoft Windows) bzw. build.sh (Linux) aufgerufen werden. Ein Plugin mit dem Namen
<name>-searchtransformer.zip wird erzeugt.
- Das Plugin kann mit der Mindbreeze Konfigurationsoberfläche installiert werden.
- Um das Plugin zu verwenden muss es in der Client Service Konfiguration konfiguriert werden. In diesem Beispiel wird ein API V2 Search Request Response Transformer mit dem Namen APIV2SearchRequestResponseTransformer.MyCustomTransformer konfiguriert. Um im Ergebnis die Metadaten extension, mes:key, category, categoryinstance und icon zu erhalten wurden diese als Additional Metadata konfiguriert. Der Parameter source gibt an, ob das Value oder die HTML Representation verwendet wird.

- Das Plugin kann unter der URL https://clientservice:clientserviceport/plugin/ID/search?params aufgerufen werden. Die ID wäre in diesem Beispiel APIV2SearchRequestResponseTransformer.MyCustomTransformer. Das erzeugte Beispiel Plugin wird mit der URL https://clientservice:clientserviceport/plugin/ID/search?q=ALL&num=20 aufgerufen. Diese URL setzt eine Suche nach ALL ab und liefert 20 Ergebnisse in einem XML Format.
Implementierung der Transformation
Implementierung der Request Transformation
Um den Request zu transformieren muss die Methode transformRequest implementiert werden.

Dieses Beispiel ist im generierten Code des SDK enthalten und transformiert den Search Request, definiert durch die HTTP Parameter q und num in einen Mindbreeze Search Request. Die Metadaten aus der Konfiguration des Plugins werden im Mindbreeze Search Request angefordert, um im Ergebnis verfügbar zu sein.
Implementierung der Response Transformation
Die Response Transformation wird in der Methode transformResponse durchgeführt.
transformResponse(RpcController controller, ResponseTransformationRequest request, RpcCallback<HTTPResponse> done)
Der request Parameter enthält den zu transformierenden Request. Mit dem Parameter done kann der Response gesetzt werden. Das folgende Beispiel schreibt alle Titel des Query Response als Text auf den Response.

Der HTTP Content-Type wird durch das Definieren des MediaType im Response festgelegt.