2016-09-30 7 views
0

filtern Ich habe über 5k Zeilen lang swagger.json Datei beschreibt Hunderte von Pfaden und Objekten. Ich möchte einen TypeScript-Client (mit swagger-codegen) generieren, der nur einen Teil der Endpunkte verwendet. Ich möchte nicht, dass die generierte TypeScript-Anwendung Klassen oder Schnittstellen enthält, die mit nicht verwendeten Teilen der swagger.json verbunden sindWie generierte Swagger JSON (yaml)

Wie filtert man nur einen Teil der Swagger-Dokumentation heraus, der die angegebene Gruppe von Pfaden beschreibt (zB alle Pfade beginnend) mit /api/*)? Insbesondere möchte ich, dass das gefilterte JSON definitions für nicht verwendete Datenstrukturen nicht enthält.

Antwort

0

auszuschließen und zu schaffen, haben wir swagger-json-filter - ein Befehlszeilenprogramm Filtern einen Swagger DOKUMENTAT ermöglicht Ion. Es kann leicht an andere Befehle in bash verwendet werden:

cat input.json | swagger-json-filter --include-paths="^\/api\/.*" > output.json 

das Werkzeug eine Logik ausführt, erforderlich, um unerwünschte Definitionen herauszufiltern (verschachtelt auch) aus der Ausgabe.

1

Ich denke, Sie können es tun, mit Aufgabenautomatisierung (Grunt, Schluck, Shell, was auch immer). Grundsätzlich könnte es ein 3 Schritten Aufgabe sein:

  1. die swagger.json bekommen (oder die Prahlerei Code-gen rufen Sie die Json zu bekommen, mit so etwas wie java -jar swagger-codegen-cli-x.x.x.jar generate -i <URL> -l swagger -o GeneratedCodeSwagger)
  2. entfernen Sie die Definitionen/Pfade, die Sie wollen ein modifizierte swagger.json
  3. Aufruf der Code-gen Leiten des modifizierten json mit Schließlich java -jar swagger-codegen-cli-x.x.x.jar generate -i GeneratedCodeSwagger\swagger.json -l typescript-angular
+0

Vielen Dank für die Antwort! Das war die einzige Idee, die ich hatte, um dieses Problem zu lösen. Ich wollte nur sicher sein, dass es keinen anderen Weg/Werkzeug gibt, um das zu tun. Also werde ich versuchen, ein einfaches Kommandozeilenwerkzeug in node.js zu schreiben. – Terite

Verwandte Themen