반응형
Flask에서 add_namespace
는 일반적으로 Flask-Restx와 같은 라이브러리에서 사용됩니다. Flask-Restx는 Flask를 확장하여 RESTful API를 더 쉽게 만들 수 있게 해주는 도구입니다. add_namespace
는 API의 특정 경로를 네임스페이스로 그룹화하여 관리할 때 유용합니다. 이를 통해 코드 구조를 더 잘 조직할 수 있으며, 큰 애플리케이션에서 특정 기능별로 분리된 API 엔드포인트를 정의할 수 있습니다.
Flask-Restx에서 add_namespace
사용법
- Flask-Restx 설치
먼저 Flask-Restx를 설치해야 합니다.
pip install flask-restx
- 기본 구조 설정
Flask 앱을 설정하고add_namespace
를 사용하는 방법은 다음과 같습니다.
from flask import Flask
from flask_restx import Api, Namespace, Resource
app = Flask(__name__)
api = Api(app)
# 네임스페이스 정의
ns = Namespace('users', description='User related operations')
# 리소스 정의
@ns.route('/<int:id>')
class UserResource(Resource):
def get(self, id):
return {'user_id': id}
# 네임스페이스를 API에 추가
api.add_namespace(ns)
if __name__ == '__main__':
app.run(debug=True)
위 코드에서 Namespace
는 /users
라는 경로와 관련된 API 리소스를 정의합니다. 그런 다음 api.add_namespace(ns)
를 사용하여 이 네임스페이스를 API에 추가합니다.
- 네임스페이스 여러 개 추가하기
여러 네임스페이스를 추가할 수도 있습니다.
from flask import Flask
from flask_restx import Api, Namespace, Resource
app = Flask(__name__)
api = Api(app)
# 첫 번째 네임스페이스
user_ns = Namespace('users', description='User related operations')
@user_ns.route('/<int:id>')
class UserResource(Resource):
def get(self, id):
return {'user_id': id}
# 두 번째 네임스페이스
product_ns = Namespace('products', description='Product related operations')
@product_ns.route('/<int:id>')
class ProductResource(Resource):
def get(self, id):
return {'product_id': id}
# 네임스페이스 추가
api.add_namespace(user_ns)
api.add_namespace(product_ns)
if __name__ == '__main__':
app.run(debug=True)
이 예제에서는 /users/<id>
와 /products/<id>
경로를 통해 각각 사용자와 제품에 대한 API를 제공합니다.
요약
add_namespace
는 Flask-Restx의 기능으로, 네임스페이스를 API에 추가하여 경로를 그룹화할 수 있습니다.- 네임스페이스는 여러 리소스(Route)를 하나의 그룹으로 묶을 수 있으며, 이를 통해 API 코드 구조를 더 잘 관리할 수 있습니다.
반응형
'Framework > Flask' 카테고리의 다른 글
[ Flask ] Hello, Flask - Flask로 간단하게 웹 애플리케이션 만들기 (1) | 2024.10.09 |
---|---|
[ Flask ] Flask 설치하기 (1) | 2024.10.05 |