X

Oracle Application Express
Tipps, Tricks und Best Practice

  • APEX
    July 11, 2017

REST Services und Application Express: Filtering

Carsten Czarski
Consulting Member of technical Staff

Die Anforderung, mit REST Services zu arbeiten, haben auch Application Express-Entwickler mehr und mehr auf dem Schreibtisch. Zwar können Web Service Referenzen für REST Services in den Gemeinsamen Komponenten eingerichtet werden; die Unterstützung ist jedoch recht limitiert: So muss die JSON-Antwort, die der REST Service sendet, typischerweise manuell geparst und verarbeitet werden.

In den vergangenen Wochen konnten Sie bereits mehrere Tipps zum Thema im Rahmen der APEX-Community lesen: So haben Sie erfahren, wie Sie, mit der seit Version 5.1 vorhandenen neuen Packaged Applications REST Client Assistant ...

In den bisherigen Tipps wurden stets alle Daten des REST Service abgerufen - entweder alle auf einmal, oder seitenweise. In der Praxis sind aber oft nur Teilmengen der Daten gefragt: man möchte die Ergebnismenge mit einem Filter einschränken.

"Das ist ja einfach" dürfte nun der allererste Gedanke sein - schließlich findet das JSON-Parsing mit SQL und den SQL-Funktionen XMLTABLE oder JSON_TABLE statt. Beide stellen die Daten so bereit, als ob sie aus einer Tabelle kämen - in der WHERE-Klausel können nun also beliebige SQL-Filter verwendet werden. 

Problematisch wird dies allerdings, wenn die Antwort des REST Service potenziell sehr große Datenmengen zurück liefert - man stelle sich vor, ohne Filter würde eine sechs- oder gar siebenstellige Anzahl an Zeilen zurückgegeben. Viele REST-Services geben die Daten dann seitenweise ab; das wurde im Community-Tipp Größere Datenmengen seitenweise vom REST Service abrufen näher betrachtet. Ginge man wie oben vor, bedeutet das, dass man zunächst alle Daten, über mehrere Seiten hinweg, vom REST Service abrufen würde. Anschließend würde man, per SQL-Filter, das meiste davon wieder verwerfen. Es ist klar, dass dies für den kleinere Services (unter 1.000 Zeilen) noch in Ordnung geht, bei größeren Datenmengen ist diese Vorgehensweise allerdings problematisch.

Lesen Sie in unserem aktuellen Tipp, wie Sie die Ergebnismenge eines REST Service filtern können - wann Sie problemlos mit SQL arbeiten und wann Sie eine Filter-Syntax, am Beispiel von Oracle REST Data Services, nutzen können. 

 

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.