WIP: erster Vorschlag für die Zuweisung von Validation functions zu Feldern #4

Closed
dkdent wants to merge 2 commits from validation-schema into master
Collaborator

Vorschlag für die Validators für die einzelnen Felder. Einige davon sind noch nicht implementiert. Was hälst du davon als erste Variante?

Vorschlag für die Validators für die einzelnen Felder. Einige davon sind noch nicht implementiert. Was hälst du davon als erste Variante?
tux was assigned by dkdent 2020-11-12 22:08:30 +01:00
Owner

Ich habe hier noch nicht geantwortet, denke aber auch schon seit zwei Wochen drauf rum.

Grundsätzlich finde ich es gut, die Validatoren flexibel zu halten. Zwei Dinge halten mich von der Lösung ab:

  1. Das JSON zieht eine Zwischenschicht in den sonst recht einfachen Validator-Code ein. Wir müssen nun auch das JSON interpretieren (und validieren).
  2. Es ist auf diese Art keine komplexe Validierung möglich, weil immer von den einzelnen Feldern ausgegangen wird, wir aber ggf. auch über Gruppen von Feldern validieren wollen. (Man könnte z.B. warnen, wenn ein Mitglied keine Kontoverbindung hat, das ist aber nur relevant, wenn die Mitgliedschaft auch noch besteht. Es gibt bei den Verbundfeldern sicherlich auch noch trivialere Fälle.)

Gibt es vllt einfach nutzbare Bibliotheken zur Validierung, die man dann z.B. auch über ein JSON füttern kann?

Ansonsten würde ich hier direkter entwickeln und die Validierungsfälle in Python-Code schreiben. Unser Schema ist recht statisch und wir haben auch nicht den Fall, dass wir ein Framework entwickeln. Die übertragung der Validierung an einen Remote-Service ist ebenfalls kein Thema, weil der Remote-Service hier schon aufgerufen wurde.

Ich habe hier noch nicht geantwortet, denke aber auch schon seit zwei Wochen drauf rum. Grundsätzlich finde ich es gut, die Validatoren flexibel zu halten. Zwei Dinge halten mich von der Lösung ab: 1. Das JSON zieht eine Zwischenschicht in den sonst recht einfachen Validator-Code ein. Wir müssen nun auch das JSON interpretieren (und validieren). 2. Es ist auf diese Art keine komplexe Validierung möglich, weil immer von den einzelnen Feldern ausgegangen wird, wir aber ggf. auch über Gruppen von Feldern validieren wollen. (Man könnte z.B. warnen, wenn ein Mitglied keine Kontoverbindung hat, das ist aber nur relevant, wenn die Mitgliedschaft auch noch besteht. Es gibt bei den Verbundfeldern sicherlich auch noch trivialere Fälle.) Gibt es vllt einfach nutzbare Bibliotheken zur Validierung, die man dann z.B. auch über ein JSON füttern kann? Ansonsten würde ich hier direkter entwickeln und die Validierungsfälle in Python-Code schreiben. Unser Schema ist recht statisch und wir haben auch nicht den Fall, dass wir ein Framework entwickeln. Die übertragung der Validierung an einen Remote-Service ist ebenfalls kein Thema, weil der Remote-Service hier schon aufgerufen wurde.
Author
Collaborator

Ich habe hier noch nicht geantwortet, denke aber auch schon seit zwei Wochen drauf rum.

Ich bin mit der aktuellen Lösung auch nicht glücklich und wollte das eh nochmal diskutieren.

Gibt es vllt einfach nutzbare Bibliotheken zur Validierung, die man dann z.B. auch über ein JSON füttern kann?

Da schaue ich noch mal nach.

Es ist auf diese Art keine komplexe Validierung möglich, weil immer von den einzelnen Feldern ausgegangen wird, wir aber ggf. auch über Gruppen von Feldern validieren wollen. (Man könnte z.B. warnen, wenn ein Mitglied keine Kontoverbindung hat, das ist aber nur relevant, wenn die Mitgliedschaft auch noch besteht. Es gibt bei den Verbundfeldern sicherlich auch noch trivialere Fälle.)

Speziell für die IBAN/BIC Felder gibts auch Validationsmöglichkeiten, die sich in dem hier vorgeschlagenen Schema nicht vernünftig abbilden lassen.

> Ich habe hier noch nicht geantwortet, denke aber auch schon seit zwei Wochen drauf rum. Ich bin mit der aktuellen Lösung auch nicht glücklich und wollte das eh nochmal diskutieren. > Gibt es vllt einfach nutzbare Bibliotheken zur Validierung, die man dann z.B. auch über ein JSON füttern kann? Da schaue ich noch mal nach. > Es ist auf diese Art keine komplexe Validierung möglich, weil immer von den einzelnen Feldern ausgegangen wird, wir aber ggf. auch über Gruppen von Feldern validieren wollen. (Man könnte z.B. warnen, wenn ein Mitglied keine Kontoverbindung hat, das ist aber nur relevant, wenn die Mitgliedschaft auch noch besteht. Es gibt bei den Verbundfeldern sicherlich auch noch trivialere Fälle.) Speziell für die IBAN/BIC Felder gibts auch Validationsmöglichkeiten, die sich in dem hier vorgeschlagenen Schema nicht vernünftig abbilden lassen.
Author
Collaborator

Übersicht Validation Frameworks

Nach erster Sichtung sehen Colander und Cerberus geeignet aus.

[Übersicht Validation Frameworks](https://www.yeahhub.com/7-best-python-libraries-validating-data/) Nach erster Sichtung sehen [Colander](https://docs.pylonsproject.org/projects/colander/en/latest/) und [Cerberus](https://docs.python-cerberus.org/en/stable/) geeignet aus.
Owner

Übersicht Validation Frameworks

Nach erster Sichtung sehen Colander und Cerberus geeignet aus.

D.h. wir bräuchten eine einfache Implementierung der Eckpunkte mit beiden, um dann zu entscheiden, welche wir haben wollen. ^^

> [Übersicht Validation Frameworks](https://www.yeahhub.com/7-best-python-libraries-validating-data/) > > Nach erster Sichtung sehen [Colander](https://docs.pylonsproject.org/projects/colander/en/latest/) und [Cerberus](https://docs.python-cerberus.org/en/stable/) geeignet aus. > D.h. wir bräuchten eine einfache Implementierung der Eckpunkte mit beiden, um dann zu entscheiden, welche wir haben wollen. ^^
Author
Collaborator

Ja, ich setze mich da bei Gelegenheit mal ran und implementiere einen einfachen Case.

Ja, ich setze mich da bei Gelegenheit mal ran und implementiere einen einfachen Case.
Author
Collaborator

ich hab mal einen einfachen Test im Branch experiments-cerberus gebaut. Das fühlt sich recht angenehm an. Validation von mehreren Feldern auf einmal könnte aber etwas komplexer werden.

ich hab mal einen einfachen Test im Branch experiments-cerberus gebaut. Das fühlt sich recht angenehm an. Validation von mehreren Feldern auf einmal könnte aber etwas komplexer werden.
Owner

ich hab mal einen einfachen Test im Branch experiments-cerberus gebaut. Das fühlt sich recht angenehm an. Validation von mehreren Feldern auf einmal könnte aber etwas komplexer werden.

Kannst Du daraus einen WIP-PR machen? Dann können wir da disktieren.

> ich hab mal einen einfachen Test im Branch experiments-cerberus gebaut. Das fühlt sich recht angenehm an. Validation von mehreren Feldern auf einmal könnte aber etwas komplexer werden. Kannst Du daraus einen WIP-PR machen? Dann können wir da disktieren.
dkdent closed this pull request 2020-12-04 19:09:51 +01:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Netz39_Vorstand/entities_validation_svc#4
No description provided.