2016-09-30 16 views
0

数百万のパスとオブジェクトを記述する5k行以上のswagger.jsonファイルがあります。私は、エンドポイントの一部だけを使用してTypeScriptクライアント(swagger-codegenを使用)を生成したいと考えています。生成されたTypeScriptアプリケーションに、swagger.jsonの未使用部分に接続されたクラスまたはインタフェースを含めることは望ましくありません。生成されたSwaggerをフィルタリングする方法JSON(yaml)

Swaggerドキュメントの一部のみをフィルタリングし、 /api/*)?特に、フィルタリングされたJSONに未使用のデータ構造のためにdefinitionsが含まれないようにしたい。

答えて

0

で変性したJSONを渡す

  • コールコード-genは最後に、我々はswagger-json-filterを作成 - 闊歩documentatをフィルタリングできるように、コマンドラインツールをイオン。簡単にbashで他のコマンドに沿って使用することができる。

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

    ツールは出力から(また、ネストされた)望ましくない定義を除外するために必要なロジックを実行しています。

  • 1

    私はあなたがタスクオートメーション(grunt、gulp、shell、何でも)を使ってそれを行うことができると思います。 基本的には3つの段階の作業になることができます:あなたが欲しいの定義/パスを削除

    1. がswagger.jsonを取得(またはjava -jar swagger-codegen-cli-x.x.x.jar generate -i <URL> -l swagger -o GeneratedCodeSwaggerようなもので、JSONを取得するには威張っコード-GENを呼び出す)
    2. 修正swagger.jsonを除外して作成するjava -jar swagger-codegen-cli-x.x.x.jar generate -i GeneratedCodeSwagger\swagger.json -l typescript-angular
    +0

    ありがとうございました!これは私がこの問題を解決するための唯一のアイデアでした。私はちょうどそれを行うために使用することができる他の道/ツールがないことを確認したいと思っている。だから私はnode.jsに簡単なコマンドラインツールを書こうとします。 – Terite

    関連する問題