WSDL Schnittstelle

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.

Export-Definition

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:

  • Spalten-Namen müssen immer mit einer ID (1,2,3 usw.) beginnen, Felder die zu derselben Tabelle gehören müssen mit dieser ID gefolgt von einem Doppelpunkt ge-Prefixed werden ( 1:EASYDB:ID, 1:EASYDB_POOL, 1:DC:title, usw.)
  • Spalten, die mit FILE:preview:imageFilename(version) markiert sind, werden vom WSDL-Exporter als Bild-Spalten interpretiert. preview ist die Spalte für getAssetPreviewData, full die Spalter für getAssetData. version ist der Name der Version wie sie vom easydb-Asset-Server erzeugt wird.
  • Spalte, die über die SOAP-WSDL-Schnittstelle in getMetadataRecord verfügbar gemacht werden sollen, müssen hinter der Zahl den Metadata-Type DC gesetzt haben. Die Liste dieser Typen kann als Config-Variable angepasst und/oder erweitert werden.
  • Seit Version 4.0.168: Wenn ein Wert null ist, wird er ignoriert und nicht über die SOAP-WSDL-Schnittstelle ausgegeben. Um leere Werte trotzdem auszugeben, benutzen Sie im SQL COALESCE(feld, ‘’).

Mit der Export-Definition und dem SELECT haben Sie nun die folgenden URLs zur Verfügung:

WSDL-URLs

  1. http://***easydb-url***/soap/wsdl/HIFedora3ConnectorService.wsdl
  2. http://***easydb-url***/soap/wsdl/wsdl1/HIFedora3ConnectorService.wsdl

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.

Tabellen-HTML-Schnittstelle

  • http://***easydb-url***/soap/tabular
  • http://***easydb-url***/soap/tabular/wsdl1

Diese Schnittstelle dient zum Testen der SELECT-Definition. Sie ist im Verlauf dieses Artikels noch genauer beschrieben.

Test-Client

  • http://***easydb-url***/soap/test

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.

Tabellen-HTML-Schnittstelle

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

Test-Client WSDL

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:

  • URL Die URL der WSDL-Schnittstelle Ihrer easydb. http[s]://***easydb-url***/soap/wsdl/[export/]HIFedora3ConnectorService.wsdl
  • Username Das Login des easydb-Benutzers.
  • Password Das Passwort des easydb-Benutzers

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.

Tests direkt mit easydb

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.