GraphQL für .NET
13.11.2017, 00:00 Uhr
Besser abgefragt
Die Abfragesprache erlaubt flexible Abfragen – auch zusammen mit .NET.
Bei der Abfrage von Daten über eine REST-Schnittstelle entstehen zwei grundlegende Probleme. Das erste betrifft die Flexibilität einer Datenabfrage: Wenn eine Anwendung erstmals aufgerufen wird, sollen in der Regel Datenmengen angezeigt werden. Ein API muss daher nicht nur den Zugriff auf einen einzelnen Datensatz erlauben, sondern auch den Zugriff auf mehrere Datensätze über eine Mengenbeschreibung. So könnte beispielsweise ein Warensystem die jüngsten Bestellungen oder einen kritischen Lagerbestand anzeigen. Diese Informationen kann die Oberfläche der Anwendung jedoch nur dann darstellen, wenn das API darauf vorbereitet ist. Das bedeutet, das API muss die Möglichkeit vorsehen, dass Daten nach bestimmten Kriterien angezeigt werden können. Da bei REST alles als Ressource gilt, wird die Mengenbeschreibung der Daten als URL definiert, der sich mit zunehmender Tiefe immer weiter verfeinert. So wird beispielsweise die Datenermittlung aller Datensätze vom Typ Customer ohne Einschränkungen beginnen, dann vielleicht eine Einschränkung nach dem Bundesland und anschließend eine nach der Stadt anbieten. REST erlaubt mehrere Pfade nebeneinander, aber es müssen eben immer diese Pfade sein, über welche die Daten ermittelt werden. Daher werden die Möglichkeiten, die der Client für die Datenermittlung zur Verfügung hat, grundlegend von der REST-Schnittstelle, dem API zum Bereitstellen der Daten, bestimmt. Es ist somit immer nötig, den Client und dieses API aufeinander abzustimmen – der Client kann nur so viel, wie das API bereitstellt.
Das zweite Problem, das eng mit einer REST-Schnittstelle verbunden ist, ist der Umfang der gelieferten Daten. Auch hier gilt, dass die REST-Schnittstelle definiert, welche Daten geliefert werden. Möchte ein Client einen anderen Datenumfang als beispielsweise nur den Inhalt eines spezifischen Feldes ermitteln, muss die Schnittstelle dahingehend erweitert werden. Deutlich wird das Problem des Datenumfangs auch dann, wenn Kombinationen von Daten abgefragt werden sollen, wenn es also beispielsweise darum geht, einen Kunden und seine Rechnungen aus einem bestimmten Zeitraum anzuzeigen. Auch hier muss die REST-Schnittstelle darauf vorbereitet sein und die grundlegende Beziehung zwischen einem Kunden und seinen Rechnungen in der Definition der Schnittstelle abbilden. Und auch hier sind Variationen und Flexibilität nur schwer zu realisieren.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar