2017-12-01 36 views
2

Swagger/OpenAPI YAML仕様が1つであるため、特定のAPIエンドポイントを安全に抽出し、専用に新しいを生成する方法を教えてください。別のSwaggerまたはOpenAPIファイルから特定のエンドポイント用のスワッガーファイルを生成

それは一定のレベル(1つのインデント以上で定義されたような)からAPIエンドポイントを特定するのは簡単です:私はちょうど新しいスペックファイルに、pathsを除く、すべてのセクションをコピーしたい

paths: 
    /users: 
    ... 
     - $ref: '#/requests/getUser' 
    /repos: 
    ... 
requests: 
    getUser: 
    ... 

。そして、私はインデントに基づいて/users:のような特定のpathsサブセクションをコピーします。 Pythonでは、正規表現を使用します。

しかし、この直接的な方法は仕様に安全ですか?

+1

すべてのパスを取得し、yaml.dumpを後で作成する場合はdata.get( 'paths')をdata.yaml.load(your.yaml)とし、正規表現は必要ありません – Janom

+0

Pythonは必須ですか?これはJava swagger-parserを使って行うことができますが、Pythonについてはわかりません。 – Helen

答えて

0

Swagger Inspectorを使用すると、API呼び出しを作成してから定義ファイルを作成できます(必要な呼び出しのサブセットのみを選択できます)。 inspector.swagger.ioを参照してください.UIベースですが、時間を節約できます。