Dies ist mit Delphi/C++Builder/RAD Studio 11.x nicht mehr notwendig, da Datenbank-Endpoints automatisch mit dem Experten erzeugt werden können
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Creating_a_RAD_Server_Package
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:
[crayon-67401ce800035965213596/]
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:1http://localhost:8080/irgendwas?page=1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[crayon-67401ce80003d032269433/]
Der URL-Teil „page“ ist konfigurierbar in der TEMSDataSetResource Komponente (PageParamName)
- Man kann die Daten sortieren (innerhalb der Page):
1http://localhost:8080/irgendwas?sfEMP_NO=DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[crayon-67401ce800043472474679/]
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:
[crayon-67401ce800047870255635/]
Mehr dazu auch morgen in meinem Webinar: