Da die Dokumentation zu den neuen RAD Server Möglichkeiten etwas limitiert ist, hier einige Tipps: Ich möchte hier drei Aspekte beleuchten:
- PageSize (TEMSDataSetResource)
- SortingParamPrefix (TEMSDataSetResource)
- ValueFields (TEMSDataSetResource)
Es gibt eine neue Komponente, die es ermöglicht, schnell einen RAD Server/eine RAD Server Ressource zu erstellen, die den Datenbankinhalt als JSON zurückliefert: TEMSDataSetResource
Jetzt habe ich mich gefragt, wie man das nutzt….. ohne Doku aber möglich: Ich habe in den Quelltext geschaut 🙂
Einfaches Beispiel (setzt voraus, daß der RAD Server Development Server lauffähig ist (InterBase konfiguriert))
- Datei | Neu | Weitere
- Delphi Projekte -> RAD Server -> RAD Server-Package
- “Package mit Ressource erstellen”
- Ressourcenname “Irgendwas” / Dateityp “Datenmodul”
- ALLE Endpunkte löschen
- Fertig stellen
Das bringt ein normales Datenmodul für den RAD Server auf den Schirm
Hier platziert man nun drei Komponenten:
- TEMSDataSetResource und die (beiden) Datenbankzugriffskomponenten (hier aus eines InterBase Datenbank):
Der EMDDataSetRessource weisst man nun das DataSet zu und aktiviert die “Action” “List” unter “AllowedActions”:
Und fügt die passende RessourceSuffix im Quelltext ein:
1 2 3 4 5 6 7 8 9 |
type [ResourceName('Irgendwas')] TIrgendwasResource1 = class(TDataModule) [ResourceSuffix('./')] EMSDataSetResource1: TEMSDataSetResource EmployeeConnection: TFDConnection EmployeeTable: TFDQuery published end |
Neu hinzugekommen ist das (direkt über der TEMSDataSetResource)
[ResourceSuffix(‘./’)]
Das war’s auch schon 🙂
Was hat man nun? Wir haben eine RAD Server Ressource erstellt, die auf der “Action” “List” die Daten der Resource zurück liefert:
Man kann diese aber (und das ist auch NEU) beeinflussen:
- Die Eigenschaft “ValueFields” in der TEMSDataSetResource bestimmt, welche Felder zurückgegeben werden (per Editor konfigurierbar). Ist die Property leer, werden alle Felder zurückgegeben.
- Die Eigenschaft “PageSize” gibt die Möglichkeit, die zurückgegebene Datenmenge auf <n> Datensätze zu beschränken (Standard: 50)
Dies kann man dann im URL-Aufruf umsetzen:http://localhost:8080/irgendwas?page=1
Der URL-Teil “page” ist konfigurierbar in der TEMSDataSetResource Komponente (PageParamName)
- Man kann die Daten sortieren (innerhalb der Page):
http://localhost:8080/irgendwas?sfEMP_NO=D
Dafür steht das “sf” für das “SortingParamPrefix” (konfigurierbar in der TEMSDataSetResource Komponente / “SortingParamPrefix“)
Dann kommt der Feldname (muss in den ValueFields enthalten sein) und dann, nach dem Gleichheitszeichen entweder “A” (ascending) oder “D” (descending)
Beides lässt sich auch kombinieren:
localhost:8080/irgendwas?page=1&sfEMP_NO=D
Mehr dazu auch morgen in meinem Webinar: