flask로 만든 API의 사양을 flask-restx를 이용하여 웹문서화(Swagger)를 할수있다.
blueprint와 flask-restx를 같이 설정하는 방법을 아래에 정리하였다.
빨강은 blueprint
녹색은 flask-restx
부분을 확인하면 된다.
import logging.config
from flask import Flask
from application01.app01 import app_01
from application02.app02 import app_02
logging.config.fileConfig('logging.conf')
logger = logging.getLogger()
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
app.register_blueprint(app_01, url_prefix='/a_01')
app.register_blueprint(app_02, url_prefix='/a_02')
if __name__ == '__main__':
import sys
args = sys.argv
app.run(host=args[1], port=args[2])
# app.run(host='0.0.0.0', port=4000)
import logging
from flask import Blueprint, request, jsonify
from flask_restx import Api, Resource, fields
logger = logging.getLogger()
app_01 = Blueprint('app_01', __name__)
api = Api(app_01, version="1.0", title="app01 API", description="app01 api description",)
ns = api.namespace("ns01_app", description="app01 api description")
@ns.route('/app01', methods=['POST'])
@api.doc(responses={404: "App not found"}, params={"APP_id": "The App ID"})
class app01(Resource):
def post(self):
return jsonify(status='POST OK')
import logging
from flask import Blueprint, request, jsonify
from flask_restx import Api, Resource, fields
logger = logging.getLogger()
app_02 = Blueprint('app_02', __name__)
api = Api(app_02, version="1.0", title="app02 API", description="app02 api description",)
ns = api.namespace("ns02_app", description="app02 api description")
@ns.route('/app02', methods=['POST'])
@api.doc(responses={404: "App not found"}, params={"APP_id": "The App ID"})
class app02(Resource):
def post(self):
return jsonify(status='POST OK')
'Flask' 카테고리의 다른 글
Flask 시작하기 (0) | 2021.10.14 |
---|