-
Flask API 만들기Python/Flask 2020. 9. 1. 11:45반응형
간단하게 flask 를 이용한 api 작성 법을 기록 하고자 한다. 언제 어디서 사용할지 모르니까 !
설정은 굉장히 단순하며 개인적으로는 pycharm 을 사용중이다. 개발환경은 단순하게 venv 를 사용하여 프로젝트에 필요한 것을들 관리하고 파이썬 버전은 3.7 기준으로 작성 하였다.
pycharm 사용시 import 가 굉장히 쉬워서 pip 명령어를 치지 않아도 추가가 용이하다. IDE 를 꼭 사용해야할거 같다.
아나콘다를 이용한 방식도 많지만 개인적으로는 선호하지 않아서 pycharm 을 계속 사용할 예정이다.
간단하게 get / post 요청 하는정도로만 세팅을 했고 데이터베이스 설정이나 이런것들은 추후 프로젝트에 포함해서 다시 업로드 해야겠다.
# _*_ coding: utf-8 _*_ from flask import Flask from flask import request from flask_restplus import Api ,Resource, fields import logging app = Flask(__name__) api = Api(app, verion='1.0.0', title='Serving API', description='Tracking Result Data Serving API') # GET 테스트 API @api.route('/test/<id>') @api.doc(params={'id':'an id'}) class TestGetController(Resource): def get(self, id): try: data = { 'key1': id } print(data) return { 'result':'Ok' } except: print("ERROR !!!") return {'result': 'Error'} # POST 테스트 API @api.route('/testPost') @api.doc(params={'id':'an id'}) class TestPostController(Resource): def post(self): try: id = request.form['id'] data = { 'key1': id } print(data) print(result.status_code) return { 'result':'Ok' } except: print("ERROR !!!") @api.response(403, 'Not Authorized') def get(self): api.abort(403) if __name__ == '__main__': # 디버깅 로그 옵션 app.debug = True # 로그 환경 설정 ( 패턴, 위치 , 레벨 ) logging.basicConfig(filename='log/project.log', level=logging.DEBUG, format='[%(asctime)s][%(levelname)s] %(message)s') app.run()
기본적으로 로그 기록 처리를 하였고 간단한 exception 처리를 추가 하였다. 그리고 샘플로 응답시 특정 http status 코드로 응답해주는것도 구현해 보았다.
확실히 단순하게 쓰기엔 심플하고 좋은거 같다. dJango 도 조만간 설정부터해서 전부 기록해야겠다.
반응형