Closed akuckartz closed 6 years ago
Kopiert aus #392 - das wird hier nun ein wenig redundant!
Grundsätzlich muss unterschieden werden, ob eine OParl-Anfrage der einfachen Ausgabe in einem Drittsystem dient oder ein externer Datenbestand, wie bei der OKF, aufgebaut werden soll. In der einfachen Ausgabe werden nur aktuelle Daten ausgegeben. Gelöschte Daten werden hierbei unterdrückt. Bei der Pflege eines externen Datenbestandes können die Daten mit Hilfe der Filter created_since bzw. modified_since abgerufen werden. Bei der modified_since wird die created-Eigenschaft ausgegeben, falls kein modified-Wert vorhanden ist. Gelöschte Datensätze enthalten die zusätzliche Eigenschaft deleted: True. Um einen konsistenten Datenbestand sicherzustellen, sind zwingend alle Objektlisten mit denselben Filterangaben abzufragen und zu verarbeiten. Die Ausgabe von internen Objektlisten kann hierbei entfallen.
Was bedeutet "Die Ausgabe von internen Objektlisten kann hierbei entfallen"? Dürften die Personen dann beispielsweise ohne die Memberships ausgeliefert werden wenn ein Datumsfilter angegeben wird? Für den Datenabgleich im Sinne der vorhergegangenen Diskussion (Objektlisten für alle Entitäten) würde das vermutlich Sinn machen um weniger Daten übertragen zu müssen, aber es wäre eine inkompatible Änderung gegenüber OParl 1.0.
Wenn im Update-Modus die internen Listen entfallen (können), ist es keine inkompatible Änderung gegenüber OParl 1.0, sondern eine neue Funktionalität unter OParl 1.1. Für die Version 1.1 wäre noch die Frage zu klären, ob in den internen Listen auch deleted-Objekte mit ausgegeben werden sollten / müssen. M. E. ist dies nicht erforderlich, hier sollte eine klare Trennung zwischen "normaler" Abfrage und dem Updatemodus erfolgen.
Ich stimme da solange zu, wie ein OParl 1.0-Client diesen Update-Modus nicht "unbeabsichtigt" auslösen kann. Soweit ich Sie verstanden habe, würde aber die Angabe eines Filters für eine Objektliste schon ausreichen, damit eine Abfrage als "Update"-Anfrage gilt. Diese Filterung war aber bereits in OParl 1.0 definiert. Ein OParl 1.0-Client, der dieses Feature nutzt und sich auf die vollständige Ausgabe der Objekte verlässt, würde also plötzlich weniger Daten erhalten als der OParl 1.0-Standard vorsieht. Man könnte allerdings einen neuen Query-Parameter definieren der bei der Abfrage der Objektliste hinzugefügt werden kann, um explizit diesen "Update-Modus" zu verwenden.
einverstanden
Für die Version 1.1 wäre noch die Frage zu klären, ob in den internen Listen auch deleted-Objekte mit ausgegeben werden sollten / müssen. M. E. ist dies nicht erforderlich, hier sollte eine klare Trennung zwischen "normaler" Abfrage und dem Updatemodus erfolgen.
Wie ist das geregelt? Wo ist das dokumentiert?
Stimmt, das hat noch gefehlt. Ist jetzt in 1e5e4e3ff040f81d60d82d90c4b8c6286bcb2d73 beschrieben.
Kopiert von https://github.com/OParl/spec/issues/392#issuecomment-362929374 (hatte ich in #395 übersehen):