Flask는 간단하게 Rest api를 만들수 있게 되어있다.
소스를 보면 Flask의 이용이 얼마나 간단한지 알수있다.
폴더의 구조는 아래와 같으며, 폴더별로 Rest Api를 별도로 정의할수 있게 한다.
run.py
└─application01
└app01.py ( Rest Api:app_01)
└─application02
└app02.py ( Rest Api:app_02 )
app01.py
import logging
from flask import Blueprint, request, jsonify
app_01 = Blueprint('app_01', __name__)
logger = logging.getLogger()
@app_01.route('/app', methods=['POST'])
def app():
try:
param = request.get_json()
logger.info(f'##########################')
logger.info(f'app01')
logger.info(f'##########################')
logger.info(f'[REQ] {param}')
return jsonify(status='OK')
except Exception as e:
logger.fatal(f'【システムエラー】{str(e)}:{str(request.get_json())}')
return jsonify(status='NG', error_code=500, message='【システムエラー】処理に失敗しました。\n{}'.format(str(e)))
app02.py
import logging
from flask import Blueprint, request, jsonify
app_02 = Blueprint('app_02', __name__)
logger = logging.getLogger()
@app_02.route('/app', methods=['POST'])
def app():
try:
param = request.get_json()
logger.info(f'##########################')
logger.info(f'app02')
logger.info(f'##########################')
logger.info(f'[REQ] {param}')
return jsonify(status='OK')
except Exception as e:
logger.fatal(f'【システムエラー】{str(e)}:{str(request.get_json())}')
return jsonify(status='NG', error_code=500, message='【システムエラー】処理に失敗しました。\n{}'.format(str(e)))
run.py
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='/app_01')
app.register_blueprint(app_02, url_prefix='/app_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)
실제소스는 아래에서 다운받을수 있다.
'Flask' 카테고리의 다른 글
Flask의 웹문서를 만들기(Flask-restx) (0) | 2021.10.17 |
---|