Flasggerを使用してPython FlaskアプリケーションにSwagger UIを追加しています。インターネット上で最も一般的な例は、@app.route
を使用して、基本的なフラスコのスタイルのためのものである:働くBlueprintsを使用したFlaskアプリケーションでFlasggerを使用するには?
from flasgger.utils import swag_from
@app.route('/api/<string:username>')
@swag_from('path/to/external_file.yml')
def get(username):
return jsonify({'username': username})
を。
しかし私のアプリケーションでは、@app.route
デコレータを使用してエンドポイントを定義していません。私はフラスコの青写真を使用しています。次のように:上記からわかるように
from flask import Flask, Blueprint
from flask_restful import Api, Resource
from flasgger.utils import swag_from
...
class TestResourceClass(Resource):
@swag_from('docs_test_get.yml', endpoint='test')
def get() :
print "This is the get method for GET /1.0/myapi/test endpoint"
app = Flask(__name__)
my_api_blueprint = Blueprint('my_api', __name__)
my_api = Api(my_api_blueprint)
app.register_blueprint(my_api_blueprint, url_prefix='/1.0/myapi/')
my_api.add_resource(TestResourceClass, '/test/'
endpoint='test',
methods=['GET', 'POST', 'PUT', 'PATCH', 'DELETE'])
....
は、私は、GETメソッドのエンドポイントにバインドされているTestResourceClass.get()
方法に@swag_from
デコレータを使用しました。私はまた、エンドポイント= test
が2つの場所で一致しています。
しかし、Swagger UIでは何も表示されません。すべて空白です。 docs_test_get.yml
ファイルには、swagger仕様を定義するための有効なyamlマークアップが含まれています。
私には何が欠けていますか?どのようにしてFlasker Swagger UIをFlask Blueprintベースのセットアップで動作させることができますか?
私はこれが実際にあなたの質問に役立つわけではないことを知っていますが、ここではちょうどいいです。私はflassgerを使用しません、私はフラスコスワッガーを使用します:https://github.com/gangverk/flask-swagger私はこの問題を具体的に扱うプルリクエストを作成しました:https://github.com/gangverk/flask- swagger/pull/34私はフラスコ・スワッガーが今青写真をサポートしていることだけを伝えることができます – AArias
ありがとう私は見ていきます。私は代替案を見て、https://github.com/rantav/flask-restful-swaggerを見つけました。これは、BluePrintsとAPI定義のためのリソースを使用しているFlaskアプリケーションのサポートがはるかに優れているようです。 –