[python] Flask-RESTful에서 기능에 따른 라우팅 설정 방법

Flask-RESTful은 Flask 프레임워크를 확장하여 RESTful API를 쉽게 개발할 수 있도록 도와주는 도구입니다. 이를 사용하면 API 엔드포인트를 간편하게 정의하고, 요청에 따른 적절한 동작을 수행할 수 있습니다.

라우팅 설정

Flask-RESTful에서 기능에 따른 라우팅을 설정하는 방법은 간단합니다. 각 기능을 수행하는 리소스 클래스를 정의하고, 각 리소스 클래스에 대한 라우팅을 설정하면 됩니다.

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

class HelloWorld(Resource):
    def get(self):
        return {'hello': 'world'}

class Greeting(Resource):
    def get(self, name):
        return {'message': f'Hello, {name}!'}

api.add_resource(HelloWorld, '/')
api.add_resource(Greeting, '/greeting/<string:name>')

if __name__ == '__main__':
    app.run(debug=True)

위의 예제에서 HelloWorld 클래스는 / 엔드포인트에 대한 요청을 처리하며, Greeting 클래스는 /greeting/<name> 엔드포인트에 대한 요청을 처리합니다. Greeting 클래스는 <name> 부분을 URL에 있는 값을 받아와서 사용합니다.

요청과 응답

Flask-RESTful은 리소스 클래스의 메서드를 통해 요청을 처리하고, 해당 메서드에서는 적절한 응답을 반환합니다. 예를 들어, 위의 HelloWorld 클래스에서 get 메서드는 단순한 문자열을 반환하고, Greeting 클래스의 get 메서드는 동적으로 만들어진 문자열을 반환합니다.

위의 예제에서 / 엔드포인트에 GET 요청을 보내면 HelloWorld 클래스의 get 메서드가 실행되어 JSON 형태의 응답을 반환합니다. 마찬가지로, /greeting/John과 같은 형태로 GET 요청을 보내면 Greeting 클래스의 get 메서드가 실행되어 { "message": "Hello, John!" } 형태의 응답을 반환합니다.

결론

Flask-RESTful을 사용하면 기능에 따른 라우팅을 쉽게 설정할 수 있습니다. 리소스 클래스를 만들고, 각 클래스에 대한 라우팅을 설정하면 됩니다. Flask-RESTful은 요청과 응답을 처리하는 간편한 인터페이스를 제공하여 RESTful API 개발을 더욱 편리하게 만들어줍니다.

참고 자료: