2016-09-29 14 views
0

Pythonサービスの定義からSwagger仕様(JSONとSwagger-UI)を生成する方法を探しています。私は多くのオプション(通常はFlaskベース)を見つけましたが、それらのすべてが注釈を使用します。注釈はコード内で正しく処理できません。ループ内で異なるルートを持つ10個の等価なサービスを定義します(この例では、ハンドラはそれを取得するための最初の関数呼び出しです)。注釈のないPythonコードからSwagger仕様を生成

アノテーションなしでこれを行う方法はありますか?私は、そのAPIメソッドの実装とドキュメンテーションに対応する値を使って関数(またはメソッド、またはクラスのコンストラクタ)を呼び出すことによって、APIとそのドキュメントでメソッドを生成したいと思います。

答えて

0

apispecを調べることをおすすめします。

apispecは、プラグ可能なAPI仕様ジェネレータです。

現在OpenAPIを2.0仕様(f.k.a.闊歩2.0)

apispec

from apispec import APISpec 

spec = APISpec(
    title='Gisty', 
    version='1.0.0', 
    info=dict(description='A minimal gist API') 
) 

spec.definition('Gist', properties={ 
    'id': {'type': 'integer', 'format': 'int64'}, 
    'content': 'type': 'string'}, 
}) 

spec.add_path(
    path='/gist/{gist_id}', 
    operations=dict(
     get=dict(
      responses={ 
       '200': { 
        'schema': {'$ref': '#/definitions/Gist'} 
       } 
      } 
     ) 
    ) 
) 
+0

をサポートしていただきありがとうございます。これは非常にクールですが、[例](https://github.com/marshmallow-code/apispec)と判断しています。1.派手なUIを生成して提供するものではありません。 2. Flaskに(非常に疎く、紛らわしいUIを紛失している)を統合します。これは、いずれにしても経路の注釈を使用します(注釈を何も使用できません)。 APIspecは別のソリューション(最初から始めて)を構築するのに便利かもしれませんが、現在の状態では使用できません。 – Trylks

+0

私は、ファルコンは注釈を必要としないことを発見しました。 apispecを使用してswagger.jsonを生成し、静的ページとして提供することは可能です。しかし、スワッガーUIを生成することは依然として課題です。 – Trylks

+0

私はFalconとswagger UIを生成する[小さな例](https://github.com/diyan/falcon_seed/)が見つかりましたが、注釈を使用しているようです。 – Trylks

関連する問題