2016-08-31 1 views
0

Kurz gesagt, mit Swagger Ich möchte die Fähigkeit, dynamisch zu generieren, oder nicht ein Modell abhängig von einem Attribut in der Yaml generieren.Swagger Codegen dynamische Erstellung einiger Modelle dynamisch

Ich habe dies mit unserem aktuellen Generator arbeiten, aber es erfordert alle Klassen in einer Datei generiert werden, die offensichtlich nicht ideal ist. Ein paar Vektoren, die ich ohne Erfolg untersucht habe (ohne große Umschreibungen), fügen dem CodeGen bedingt eine modelTemplateFile hinzu, indem einige Klassen während der Generierung entfernt/nicht entfernt werden und leere Klassen in Klassen erstellt werden, die ich nicht verwende möchte nicht generieren.

Keiner von diesen scheint ohne ein beträchtliches re-write/additions recht zu funktionieren, da es scheint, dass dies kein Anwendungsfall ist, den die Bibliothek in Betracht zieht. Ich bin ziemlich abgeneigt, eine große Menge an Corner-Case-Code in einer Bibliothek zu schreiben, die sich noch in der Entwicklung befindet. Daher suche ich nach einer sauberen Möglichkeit, die Fähigkeit zu integrieren, ohne Kernklassen neu schreiben/erweitern zu müssen.

Die Umgebungen, für die ich gerade arbeite, sind iOS, Android. Der Grund, warum ich Modelle erstellen/nicht erstellen möchte, ist, dass unsere aktuelle Architektur sowohl ein Datenbankmodell als auch ein Swagger-Modell enthält, wobei einige Modelle aus der Datenbank ausgeschlossen werden.

Jede Hilfe würde sehr geschätzt werden!

Antwort

0

Sie können .swagger-codegen-ignore verwenden, um Modelldateien (oder andere Dateien) zu überspringen, die bei der Verwendung von Swagger Codegen nicht generiert werden sollen.

.swagger-codegen-ignorieren ziemlich funktioniert wie .gitignore.

+1

Danke für die Antwort, aber ich sehe nicht, wie dies angesichts meiner Einschränkungen gilt. Ich muss in der Lage sein, dynamisch Modelle zu erzeugen/nicht zu erzeugen, abhängig von den Attributen in der Yaml. Mein Verständnis der Ignorierung ist, dass es Überschreiben vermeidet und statisch ist. Ich möchte die Ignorierdatei nicht jedes Mal ändern müssen, wenn ich die API-Beschreibung anpasse. Fehle ich etwas? – PeejWeej

Verwandte Themen