Ziel des Refactor ist es, dass der endpoint nicht mehr die komplette Baumstruktur ausgibt sonder selektiv nur bestimmte Äste bzw. einzelne Nodes ausgibt.
Proposed Changes:
-
Die Response Struktur:
TreeNode gibt den key level mit aus.
Der key children gibt statt eines Array(<TreeNode>) nur noch die ID's der <TreeNode>s an.*
-
Die Endpoint Struktur:
Das hinzufügen des QueryParameters level=<Integer>
---> Somit ist es möglich die oberste Ebene der Steckbriefe mittels /profiles?level=0 zu erhalten.
Das hinzufügen des QueryParameters parent=<Integer>
---> Somit ist es möglich Alle children einer TreeNode mit id=<id> mittels /profiles?parent=<id> zu erhalten.
Neuer Endpoint /contentItem/<related_name>
---> Dieser Endpoint gibt alle Steckbriefe ohne die Baumstruktur aus.
Neuer Endpoint /contentItem/<id>/<related_name>
---> Dieser Endpoint ermöglicht es einen einzelnen Steckbrief anzufragen.
Notiz: Durch die geänderte Response Struktur * ist es auch möglich den Baum via lazyloading Stück für Stück im Hintergrund
aufzubauen.
Eine Weitere Idee wäre es eine Setting DETAILED_PROFILES=<Boolean> anzulegen welcher es erlaubt app spezifisch zu
steuern ob <model>_related Array(<ProfileModel>) oder einen Array() mit den IDs der <ProfileModel>s ausgibt (In Analogie zu *).
@sheepyhollow Ist das verständlich?
Ziel des Refactor ist es, dass der endpoint nicht mehr die komplette Baumstruktur ausgibt sonder selektiv nur bestimmte Äste bzw. einzelne Nodes ausgibt.
Proposed Changes:
Die Response Struktur:
TreeNode gibt den key
levelmit aus.Der key
childrengibt statt eines Array(<TreeNode>) nur noch die ID's der <TreeNode>s an.*Die Endpoint Struktur:
Das hinzufügen des QueryParameters
level=<Integer>---> Somit ist es möglich die oberste Ebene der Steckbriefe mittels
/profiles?level=0zu erhalten.Das hinzufügen des QueryParameters
parent=<Integer>---> Somit ist es möglich Alle children einer TreeNode mit id=<id> mittels
/profiles?parent=<id>zu erhalten.Neuer Endpoint
/contentItem/<related_name>---> Dieser Endpoint gibt alle Steckbriefe ohne die Baumstruktur aus.
Neuer Endpoint
/contentItem/<id>/<related_name>---> Dieser Endpoint ermöglicht es einen einzelnen Steckbrief anzufragen.
Notiz: Durch die geänderte Response Struktur * ist es auch möglich den Baum via lazyloading Stück für Stück im Hintergrund
aufzubauen.
Eine Weitere Idee wäre es eine Setting
DETAILED_PROFILES=<Boolean>anzulegen welcher es erlaubt app spezifisch zusteuern ob
<model>_relatedArray(<ProfileModel>) oder einen Array() mit den IDs der <ProfileModel>s ausgibt (In Analogie zu *).@sheepyhollow Ist das verständlich?