Ich habe ein Django-Web-Frontend, das Daten aus einem REST-API-Backend verwendet. Sogar die Benutzer werden im Backend erstellt und erstellt.
Mein Problem:
Wie kann dieses Problem gelöst werden?
Aktualisieren
DRY Principal scheint in dieser Situation zu versagen.
Wahrscheinlich haben sich die Dinge geändert, seit diese Frage ursprünglich gestellt wurde. Jetzt gibt es ein paar interessante verwandte Fragen zu StackOverflow zu diesem Thema.
Um sich eine Lösung wie in in dieser Antwort beschrieben zu programmieren, können Sie eine externe Service-Schicht erstellen (aka services.py
) und schreibe dort die Logik für den Zugriff auf die externen Ressourcen. Ihre Ansichten werden diese Ebene konsumieren und die richtigen Aktionen ausführen. Es gibt weitere Fragen, die helfen, Informationen von der ursprünglichen Anfrage, die von der django-view empfangen wird, an den externen Dienst weiterzuleiten, z. B. dies oder das
Es gibt auch eine Django-App, die diese Situation berücksichtigt in dieser Antwort . django-roa verwendet die Ressourcenorientierte Architektur Paradigma, um dies zu lösen.
Ich stehe einem ähnlichen Hindernis mit einem neuen E-Commerce-Projekt gegenüber. Das Projekt ist ein Frontend für eine vollwertige Shop-Management-Software (CMS + ERP + CRM). Es muss die Master-Produktdatenbank verwenden, hat jedoch eigene Einträge für Produktbewertungen, Bewertungen usw.
Der ursprüngliche Gedanke war, eine zwischengespeicherte Kopie der Master-Datenbank zu erstellen. Die Website profitiert von schnellen Ladezeiten für die zwischengespeicherten Elemente, aber die Implementierung ist nicht trivial.
Nach einigen Überlegungen wurde der DB der Website aus dem Management-Programm aktualisiert. Auf diese Weise wird die Kopie der Website immer korrekt sein, und die meiste Implementierung muss sich nicht um REST-Dienste kümmern (sie wird immer noch für Benutzerregistrierung, Sendungsverfolgung usw. verwendet).
In Ihrem Fall, in dem der Service Ihre Datenbank nicht aus der Ferne aktualisieren kann, müssen Sie einen Mechanismus entwickeln, mit dem Sie auf REST-Ressourcen wie normale Modelle verweisen können und diese im Hintergrund zwischenspeichern / p>
Wichtiger Hinweis: Suchen Sie nach einer Möglichkeit, um sicherzustellen, dass der Cache immer korrekt ist (nicht verschmutzt) ...