[python] Flask-RESTful에서 컨피규레이션 관리하기

Flask-RESTful은 파이썬의 인기있는 웹 프레임워크인 Flask를 확장하여 RESTful API를 쉽게 개발할 수 있도록 도와주는 패키지입니다. 이번 글에서는 Flask-RESTful 프로젝트에서 컨피규레이션을 관리하는 방법에 대해 알아보겠습니다.

컨피규레이션 파일 생성하기

먼저, 프로젝트의 컨피규레이션을 관리하기 위해 config.py라는 파일을 생성합니다. 이 파일은 Flask 애플리케이션과 Flask-RESTful 확장을 위한 설정을 포함할 것입니다.

# config.py

class Config:
    DEBUG = False
    API_PREFIX = "/api"
    DATABASE_URI = "sqlite:///:memory:"

위의 예시에서는 Config라는 클래스를 정의하고 여러 개의 설정 변수를 선언하였습니다. DEBUG 변수는 디버그 모드를 설정하는 데 사용되며, API_PREFIX 변수는 API의 접두사를 설정하는 데 사용됩니다. DATABASE_URI 변수는 SQLite 데이터베이스의 URI를 설정하는 데 사용됩니다. 개발 환경에 맞게 이러한 변수를 추가하거나 수정할 수 있습니다.

Flask 애플리케이션에 컨피규레이션 적용하기

이제 config.py 파일에 정의된 설정을 Flask 애플리케이션에 적용해보겠습니다.

# app.py

from flask import Flask
from flask_restful import Api
from config import Config

app = Flask(__name__)
app.config.from_object(Config)
api = Api(app)

# 이후에 API 엔드포인트 등록 및 라우팅 설정 등을 구현할 수 있습니다.

위의 예시에서는 from_object 메서드를 사용하여 app 객체의 설정을 Config 클래스의 속성으로 대체하도록 지정했습니다. 이렇게 함으로써 Flask 애플리케이션은 Config 클래스에 정의된 변수들의 값을 사용하게 됩니다.

컨피규레이션 값 사용하기

Flask-RESTful 애플리케이션에서 config.py 파일에 정의된 설정 값을 사용하는 방법은 여러 가지가 있습니다. 예를 들어, API 엔드포인트에서 컨피규레이션 값을 사용할 수 있습니다.

from flask_restful import Resource
from flask import current_app

class MyResource(Resource):
    def get(self):
        api_prefix = current_app.config["API_PREFIX"]
        return {"message": f"API prefix is {api_prefix}"}

위의 예시에서는 current_app 객체를 사용하여 Flask 애플리케이션의 현재 설정에 액세스합니다. api_prefix 변수는 API_PREFIX 컨피규레이션 값을 가지게 됩니다.

결론

Flask-RESTful에서 컨피규레이션을 관리하는 방법에 대해 알아보았습니다. config.py 파일을 생성하고 Flask 애플리케이션에 적용하는 것으로 컨피규레이션 값을 사용할 수 있습니다. 이를 통해 API 개발 시 설정 변수들을 중앙에서 관리하고 코드를 더욱 유지보수하기 쉽게 만들 수 있습니다.

참고 자료