OParl / spec

Spezifikation für eine offene Schnittstelle für Ratsinformationssysteme
https://oparl.org
Creative Commons Attribution Share Alike 4.0 International
61 stars 21 forks source link

Gelöschte Objekte 2 #396

Closed akuckartz closed 6 years ago

akuckartz commented 6 years ago

Kopiert von https://github.com/OParl/spec/issues/392#issuecomment-362929374 (hatte ich in #395 übersehen):

Genau welche Abfragen werden mit welchen "gelöschten Objekten" beantwortet? (Ist das dann eine MUSS- oder eine SOLL-Anforderung?) Auf welche Abfragen wird nicht mit solchen Objekten geantwortet? (Auch hier: MUSS, DARF oder SOLL?). Anders gefragt: MUSS ein Server zwischen den Anfragearten/-zwecken unterscheiden oder DARF er auch die "gelöschten Objekte" ausgeben, selbst wenn nicht nach ihnen gefragt wurde?

sterni24 commented 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.

Medo42 commented 6 years ago

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.

sterni24 commented 6 years ago

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.

Medo42 commented 6 years ago

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.

sterni24 commented 6 years ago

einverstanden

sterni24 commented 6 years ago

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?

konstin commented 6 years ago

Stimmt, das hat noch gefehlt. Ist jetzt in 1e5e4e3ff040f81d60d82d90c4b8c6286bcb2d73 beschrieben.