Wir haben eine Situation, in der unsere App eine Reihe von Modulen hat, die eine API implementieren. Jedes dieser Module hat eine Abhängigkeit, die wiederum davon abhängt, dass ein Datenverzeichnispfad ordnungsgemäß konfiguriert ist. Diese Module sollten erst aufgebaut werden, wenn dieser Pfad konfiguriert ist.Dynamische Registrierung und Aufhebung der Registrierung Nancy Routen/Module
Wir haben auch ein Modul, das die Einstellung und Validierung der Konfiguration implementiert, einschließlich der Konfiguration des oben genannten Pfades.
Wir möchten die Datenmodule irgendwie "deaktivieren", bis die Konfiguration bestätigt werden kann. Die Konfiguration wird bestätigt, indem wir beispielsweise beim Start prüfen, ob das Datenverzeichnis existiert und gültig ist. Wenn ein Benutzer Änderungen über das Konfigurationsmodul speichert, würden wir diese Bestätigung erneut durchführen. Zur Erinnerung: Der Benutzer legt das Datenverzeichnis fest und alle Datenmodule werden aktiviert. Wenn der Benutzer ein ungültiges Datenverzeichnis einstellt (oder wir starten und das vorhandene ungültig ist), werden alle Module deaktiviert.
Wir haben versucht, einen Handler auf der pipelines.BeforeRequest
zu registrieren, aber es hat nicht geholfen. Wir versagen tatsächlich viel früher, wenn Nancy unsere Module als Teil der Besetzung einer RouteCache
instanziiert. Wir müssen diese Instanziierung verhindern, bis wir bestätigen können, dass wir konfiguriert sind.
Es scheint so, als müssten wir in der Lage sein zu sagen: "Verwenden Sie diese Modulgruppe, wenn eine Bedingung erfüllt ist, und verwenden Sie diese andere Gruppe, wenn die Bedingung falsch ist." Wie geht man so in Nancy vor?