Framework/Flask

[flask] flask-restx로 간편하게 Swagger 지원하기

깜태 2022. 2. 7. 16:36
728x90

 


1. pip install flask_restx 로 설치
2. from flask_restx import Namespace, Api, Resource 로 불러오기

3. 함수 내용을 Resource를 상속받은 객체로 변경
4. ns = Namespace('{endpoint}', description='') 로 선언 (blueprint 와 같은 기능)
4. @app -> @ns 로 변경
5. app 감싸기

app = Flask(__name__)
api = Api(app)
api.add_namespace(ns)
app.run(host='0.0.0.0', debug=True)

6. swagger 결과 확인

 

 

 

기존 코드 예시

from flask import Flask

app = Flask(__name__)

@app.route('/test', methods=['GET'])
def test():
	return {"test": "Value"}

if __name__ == "__main__"
	app.run(host='0.0.0.0', debug=True)

 

 

restx 코드 예시

 

from flask import Flask
from flask_restx import Resource, Namespace, Api

ns = Namespace('/test', description='test')

@ns.route('/test')
class RestTest:
    def get(self):    
        return {"test": "Value"}

if __name__ == "__main__"
    app = Flask(__name__)
    api = Api(app)
    api.add_namespace(ns)
    app.run(host='0.0.0.0', debug=True)

 

728x90