WSDL ist eine Online-Schnittstelle für easydb, die speziell für Hyperimage entwickelt wurde. Zuerst definieren Sie eine Export-Definition. Wählen Sie dazu unter 2 als Typ wsdl. Ein Template wie für XML und CSV muss nicht definiert werden. Die Selektion der Objekte erfolgt ausschließlich über den SQL-SELECT, den Sie unter 3 angeben.
Die WSDL-Schnittstelle ist speziell zur Verwendung mit Hyperimage designed worden. Wir haben Sie nicht mit anderen Systemen getestet.
Wir erklären die SQL-Syntax an Hand eines Beispiels. Es geht hier um die Tabelle bilder für die Objekte exportiert werden sollen.
Die SOAP-WSDL-Schnittstelle verfügt über zwei Config-Variablen, die hier beschrieben sind.
Tragen Sie das Beispiel as Export-Definition unter dem Namen wsdl1 ein.
SELECT a.id AS "1", a.id AS "1:EASYDB:ID", pool.name as "1:EASYDB_POOL", a.titel as "1:DC:title", a.beschreibung as "1:DC:description", a.bild as "1:FILE:preview:imageFilename(360)", a.bild as "1:FILE:full:imageFilename(original)", c.id as "2", c.name as "2:DC:keyword"
FROM bilder a LEFT JOIN pool ON (pool.id = a.lk_pool_id) LEFT JOIN bild__schlagwort b ON ( b. lk_bild_id=a.id ) LEFT JOIN schlagwort c on (b.lk_schlagwort_id=c.id)
WHERE c.id IS NOT NULL %filter:a.id% ORDER BY "1" LIMIT 100
Mit diesem SELECT wird ein Result-Set erzeugt, welches von easydb zeilenweise interpretiert wird und in Objekte umgewandelt wird.
In dem Select gibt es einige Spezialitäten:
Mit der Export-Definition und dem SELECT haben Sie nun die folgenden URLs zur Verfügung:
Wobei die 1. URL alle Export-Definition als oberste Hierarchie-Ebene ausgibt und die 2. URL nur die Export-Definition wsdl1 berücksichtigt und auf der obersten Ebene schon die Objekte des SELECT der wsdl1-Definition ausgibt.
Diese Schnittstelle dient zum Testen der SELECT-Definition. Sie ist im Verlauf dieses Artikels noch genauer beschrieben.
Der Test-Client ist unabhängig von den Definitionen und steht allen allgemein zur Verfügung. Es ist ein Stand-Alone-PHP-Beispiel welches Sie in
/opt/easydb/4.0/docroot/module/additional/soap/soap_client.php
finden. Diese PHP-Datei hat keine Abhängigkeiten zur easydb.
Testen Sie Ihr SQL mit Hilfe der URL
http://***easydb-url***/soap/tabular/
Für diese URL benötigen Sie das System-Recht SOAPAPI. easydb zeigt Ihnen eine Liste der verfügbaren Exporter vom Typ wsdl.
Klicken Sie auf den Beispiel-Export wsdl1 und Sie sehen eine Ausgabe, die Ihnen eine Liste der availableIDs ausgibt und darunter die raw table data als Tabelle.
1 | 1:EASYDB:ID | 1:EASYDB_POOL | 1:DC:title | 1:DC: description | 1:FILE:preview: imageFilename(360) | 1:FILE:full: imageFilename(original) | 2 | 2:DC:keyword |
---|---|---|---|---|---|---|---|---|
222560*(an)1* | 222560 | Pool1 | Fuß | Ein Fuß mit einer Lotusblume. | 25078 | 25078 | 162 | massage |
222560 | 222560 | Pool1 | Fuß | Ein Fuß mit einer Lotusblume. | 25078 | 25078 | 166 | health |
222560 | 222560 | Pool1 | Fuß | Ein Fuß mit einer Lotusblume. | 25078 | 25078 | 168 | wellness |
222560 | 222560 | Pool1 | Fuß | Ein Fuß mit einer Lotusblume. | 25078 | 25078 | 169 | spa |
222560 | 222560 | Pool1 | Fuß | Ein Fuß mit einer Lotusblume. | 25078 | 25078 | 171 | relaxation |
222560 | 222560 | Pool1 | Fuß | Ein Fuß mit einer Lotusblume. | 25078 | 25078 | 172 | relaxed |
222615 2 | 222615 | Heilpflanzen | Calendula | Calendula ist eine Heilpfanze aus Ägypten. | 246835 | 246835 | 170 | relax |
222615 | 222615 | Heilpflanzen | Calendula | Calendula ist eine Heilpfanze aus Ägypten. | 246835 | 246835 | 5 | Kunst |
In dem Beispiel-SELECT entstehen doppelte Zeilen, wenn ein Bild mehrere Schlagwörter zugeordnet bekommen hat. In diesen Zeilen ist der Wert der Spalte 1 gleich, der Wert der Spalte 2 ändert sich je Schlagwort. easydb sucht die Spalten mit den Namen 1, 2, 3, 4 usw. und nimmt dies als Basis, um das Result-Set zu parsen.
Im Ergebnis entstehen aus dem Beispiel 2 Objekte 1 und 2:
Key | Value |
---|---|
1:EASYDB:ID | 222615 |
1:EASYDB_POOL | Heilpflanzen |
1:DC:title | Calendula |
1:DC:description | Calendula ist eine Heilpfanze aus Ägypten. |
1:FILE:preview:imageFilename(360) | http://eas.example.com/eas/partitions/2/0/246000/246835/433a7f3b39f402bf812d0ff196426888cde5bc61/image/jpeg/246835-360.jpg |
1:FILE:full:imageFilename(original) | http://eas.example.com/eas/partitions/1/0/246000/246835/7365d216b85f6a4d3ddf547b652c0ce4306fbd4a/image/png/246835-original.png |
2:DC:keyword | relax |
2:DC:keyword | Kunst |
Key | Value |
---|---|
1:EASYDB:ID | 222560 |
1:EASYDB_POOL | Pool1 |
1:DC:title | Fuß |
1:DC:description | Ein Fuß mit einer Lotusblume. |
1:FILE:preview:imageFilename(360) | http://eas.example.com/eas/partitions/2/0/25000/25078/ccd8e5c467666fe9fa8b7c316b56a07065c1ac3a/image/jpeg/25078-360.jpg |
1:FILE:full:imageFilename(original) | http://eas.example.com/eas/partitions/1/0/25000/25078/8b96d97c1ab56e4945e7dd6d943f1a44d8c3dcbe/image/png/25078-original.png |
2:DC:keyword | massage |
2:DC:keyword | health |
2:DC:keyword | wellness |
2:DC:keyword | spa |
2:DC:keyword | relaxation |
2:DC:keyword | relaxed |
D.h. die doppelten Zeilen mit derselben ID in Spalte 1 werden dem selben Objekt zugeordnet.
Wenn Sie Ihren SELECT soweit haben, dass er sinnvolle Objekte ausgibt
Wir haben unseren WSDL-Testclient in die easydb-WSDL-Schnittstelle integriert. Sie erreichen den Testclient unter:
http://***easydb-url***/soap/test
Geben Sie Folgendes ein:
Der Benutzer muss über das SOAPAPI-Systemrecht verfügen. Bitte beachten Sie, dass easydb nur das Systemrecht prüft und sonst über diese Schnittstelle kein weiteres Rechte-Management macht.
Der Test-Client ist ein einfacher Client zum Testen aller für WSDL-Hyperimage-Schnittstellen verfügbaren Requests.
Um die SELECTs für einen WSDL zu testen, können Sie auf
http://***easydb-url***/customrender/<export>
Sie benötigen hierfür das Systemrecht CUSTOMRENDER DEEP LINK.