Abläufe #
Für Externe ist es sehr schwer, den Ablauf einer Applikation zu verstehen, wenn man noch nicht damit gearbeitet hat. Diese Problematik kann mittels Sequenzdiagrammen behoben werden. Sie stellen einen groben Ablauf einer Tätigkeit dar.
Zwischen dem Benutzer
und den Services
gibt es noch einen Controller
, welcher die Abfragen annimmt. Da dieser jedoch nur den Service aufruft, wurde dieser aus dem Sequenzdiagramm zur Übersichtlichkeit gelassen.
Auth#
Die Authentifizierung ist in drei Teile unterteilt: erstellen, neu erstellen und löschen. Die Accounts werden in der Datenbank gespeichert.
Account erstellen#
Beim Erstellen wird überprüft, ob bereits ein Account mit denselben Anmeldedaten existiert. Wenn nicht, dann wird ein neuer Account erstellt und der API-Key zurückgegeben.
Account neu erstellen#
Wenn ein API-Key veröffentlicht wurde oder die Anmeldedaten nicht mehr gültig sind, dann muss der Key neu erstellt werden. Dies kann mit der folgenden Funktion erreicht werden:
Account löschen#
Beim Löschen eines Accounts wird nur überprüft, ob der Key gültig ist. Wenn er gültig ist, dann wird der Account gelöscht, falls er existiert.
Abfragen#
Das JSON, welches von einem externen Server zurückgegeben wird, kann entweder von Instagram oder Twitter stammen. Da dies nur der Ablauf der Basis Klassen ist, kann diese hier nicht beschrieben werden. Aus diesem Grund wurde das Mapping des Users und des Posts nicht beschrieben. Das Mapping ist unterschiedlich, weswegen es Plattform abhängig gemacht wird.
Die Abfragen sind mithilfe eines Rate Limiters
limitiert, dass nur eine bestimmte Anzahl pro Minute abgefragt werden kann.
Status#
Das Abfragen des Statutes eines Controllers ist ein sehr einfacher Ablauf. Es wird nur überprüft, ob der Service dahinter initialisiert wurde.
User#
Ein User kann alle 12 Stunden erneut abgefragt werden. Wenn diese Zeit noch nicht überschritten ist, dann wird eine gecachte Version des Users zurückgegeben. Beim Mappen des JSONs werden alle benötigten Daten ausgelesen. Es wird keine weitere Klasse oder Funktion aufgerufen, weswegen dies hier nicht aufgeführt wurde.
Posts#
Für die Posts wird der User
auch abgefragt, damit in der Datenbank die Verlinkung gemacht werden kann. Diese Verlinkung ist notwendig, damit die Posts in der Datenbank gespeichert werden können. Dieser Teil wurde aus dem Sequenzdiagramm gelassen, da er unter User bereits ausführlich beschrieben wurde.
Mapping#
Beim Mapping wird aus dem JSON mithilfe des ObjectMappers die Felder herausgelesen. Dabei wurden die einzelnen Schritte zur Übersicht in Methoden aufgeteilt.