FeatureFlags-App

FeatureFlags API

 Funktionsumfang der FeatureFlags-App

Die FeatureFlags-App sammelt Feature Flags anderer Apps und erstellt eine Übersicht für Fachadministratoren bereit. Die anderen Apps müssen die Feature Flags bereitstellen, um von der FeatureFlags-App abgefragt werden zu können.

 Was sind Feature Flags im Kontext der FeatureFlags-App?

In diesem Kontext sind Feature Flags Funktionen, die auf Dauer verpflichtend aktiviert sind und somit in den normalen Funktionsumfang der Anwendung übergehen. Für eine gewisse Übergangszeit kann der Fachadministrator die Funktionen jedoch wahlweise aktivieren oder deaktivieren. Zum Beispiel sind die folgenden Anwendungsfälle denkbar: * Ein Feature (z.B. eine neue Oberfläche) verändert die Nutzung der Software, sodass die Anwender zunächst an die neue Verhaltensweise gewöhnt werden müssen bzw. eine Schulung notwendig ist. * Ein Feature ist noch nicht vollständig fertiggestellt, jedoch soll dem Kunden schon vorab die Möglichkeit gegeben werden, die neue Funktion auszuprobieren.

 Verwenden der API-Funktionen

Nachfolgend erfährst du, wie du die Programmierschnittstelle der FeatureFlags-App für eigene Entwicklungen nutzen kannst. Die FeatureFlags-App kommuniziert mit anderen Apps über eine Schnittstelle, die die jeweiligen Feature Flags abfragt. Wie diese Schnittstelle aufgebaut sein muss, findest du im Abschnitt Bereitstellen eines Feature Flags.

 Bereitstellen eines Feature Flags

Mit dieser Funktion kannst du Feature Flags bereitstellen, die von der FeatureFlags-App gesammelt dargestellt werden. Damit du Feature Flags bereitstellen kannst, musst du eine Linkrelation featuretoggles bereitstellen.

 Ermitteln der Feature Flags

Die FeatureFlags-App fragt alle registrierten Apps ab. Anschließend wird jede registrierte App mit dem Aufruf /<app name>/ auf der Basisadresse (also: https://<your base address>/<app name>/) und dem Anforderungsheader "Accept: application/hal+json" abgefragt. Es wird nach der Linkrelation featuretoggles gesucht. Damit die Linkrelation gefunden wird, muss das JSON wie folgt aufgebaut sein:


{
    "_links" : {
        ...
        "featuretoggles": {
            "href": "/<app name>/featuretoggles"
        }
        ...
    },
    ...
}

Wenn eine korrekt aufgebaute Linkrelation vorhanden ist, wird die darunter angegebene URI im Benutzerkontext mit der Anforderungsmethode GET und dem Anforderungsheader "Accept: application/hal+json" aufgerufen und das erhaltene JSON-Objekt ausgewertet. Das JSON, welches Apps bereitstellen müssen, um ein oder mehrere Feature Flags anzubieten, muss entsprechend dem nachfolgenden Schema aufgebaut sein:


{
    "featureToggles": [
        {
            "id": "<id of your feature toggle>",
            "context": "<context of your feature toggle>",
            "caption": "<caption of your feature toggle>",
            "description": "<description of your feature toggle>",
            "callbackUrl": "<callback url>",
            "tenantActivated": <state of your feature toggle>,
            "expiration": "<expiration of your feature toggle>",
            "feedbackMailAddress": "<feedback mail address>",
            "iconUrl": "<link to your icon>"
        }
    ]
}
EigenschaftTypBeschreibungPflichtAnmerkung
idstringEindeutiger Identifizierer des Feature Flags.JaEindeutig in Bezug auf den Kontext.
contextstringWird in der Oberfläche verwendet, um Feature Flags zu gruppieren, z.B. könnten alle Feature Flags von d.velop inbound suite den Kontext "d.velop inbound suite" verwenden und somit gruppiert dargestellt werden.Ja
captionstringLokalisierte Überschrift des Feature Flags.Ja
descriptionstringLokalisierte Beschreibung des Feature Flags.JaKann Links enthalten
callbackUrlstringCallback, der im Benutzerkontext aufgerufen wird, sobald das Feature aktiviert oder deaktiviert wird.JaRelative URL
tenantActivatedboolGibt an, ob das Feature Flag für den aktuellen Mandanten aktiviert oder deaktiviert wird.JaDatenhaltung obliegt der jeweiligen App
expirationstringVoraussichtlicher Termin, an dem das Feature Flag in den Standardfunktionsumfang übergeht.JaISO-8601-formatierter String
iconUrlstringURL zum Anzeigen eines Icons.Nein
feedbackMailAddressstringE-Mail-Adresse, die der Anwender (Fachadministrator) verwenden kann, um dem App-Builder Feedback zu einem Feature zu geben.Nein

 Callback entgegennehmen

Wird ein Feature Flag vom Fachadministrator aktiviert oder deaktiviert, ruft die FeatureFlags-App für das entsprechende Feature Flag die URL auf, die in der Eigenschaft callbackUrl definiert ist. Die POST-Anfrage im JSON-Format wird im Benutzerkontext ausgeführt. Die Anfrage ist wie folgt aufgebaut:


{
  "id": "<id of your feature toggle>",
  "tenantActivated": <state of your feature toggle>
}
EigenschaftTypBeschreibung
idstringEindeutiger Identifizierer des Feature Flags
tenantActivatedboolAngabe des veränderten Status des Feature Flags