Datenschnittstelle
Mit /data/namespace/api
kann auf den Datenbestand der API api
im Namensraum namespace
zugegriffen werden. Dabei wird ein einfacher CRUD Ansatz verwendet:
- POST legt einen neuen Datensatz an. Dieser erhält automatisch eine vom Server vergebene eindeutige Kennung (_id) und einige Meta-Daten (aktuelles Konto als Eigentümer und aktueller Zeitpunkt)
- PUT ändert einen Datensatz, dabei werden die Meta-Daten angepasst (aktuelles Konto als letzter Bearbeiter und aktueller Zeitpunkt) - es müssen nur die Felder übermittelt werden, die auch verändert sollen (Unterstrukturen müssen immer vollständig übertragen werden)
- DELETE löscht einen Datensatz
- GET meldet einen oder alle Datensätze
Mit einem POST auf /data/namespace/api/query
kann eine erweiterte Suche durchgeführt werden, die gesteuert über die Beschreibungen im POST body neben Filter und Sortierung auch das Blättern unterstützt.
Bei PUT, DELETE unf GET für einen einzelnen Datensatz wird die id direkt im Zugriff angegeben: /data/ns/api/id. PUT stellt allerdings eine Besonderheit dar - hier muss eines der folgenden Bedingungen gelten, damit es funktioniert:
- Die id wird nur in der Uri angegeben und fehlt im Datensatz
- Die id wird nur im Datensatz angegeben, es wird der Standardzugriff /data/ns/api verwendet
- Ist die id auf beiden Wegen angegeben, so müssen diese identisch sein, sonst wird ein Fehler beim Zugriff gemeldet
Im Vorgriff auf das zukünftige Übertragen von Dateiinhalten vom Client zum Server wird der Inhaltstyps multipart/form-data unterstützt. Im Multi-Part Modus (für POST und PUT) werden die Nutzdaten statt im HTML Body in einer Variablen data übertragen, die wie der Body im Standardmodus mit den als Zeichenkette serialisierten Parameter (JSON.stringify) gefüllt wird. Auch wenn es aktuelle keine Implementierung für eine weitergehende Auswertung gibt: alle weiteren Variablen sind dann Dateiinhalte.