[python] Flask로 RESTful API 개발하기
Flask는 Python으로 웹 어플리케이션을 빠르고 쉽게 개발할 수 있게 도와주는 마이크로 웹 프레임워크입니다. 이번 포스트에서는 Flask를 사용하여 RESTful API를 개발하는 방법에 대해 알아보겠습니다.
목차
Flask 설치하기
Flask를 설치하려면, 터미널 또는 명령 프롬프트에서 다음 명령을 실행합니다:
pip install Flask
Flask 앱 만들기
다음은 간단한 Flask 앱을 만드는 방법입니다. app.py
파일을 생성하고 아래의 코드를 추가합니다:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
위 코드에서 @app.route('/')
는 루트 엔드포인트에 대한 요청을 처리하며, hello_world
함수는 단순한 “Hello, World!” 문자열을 반환합니다.
앱을 실행하려면 터미널에서 다음 명령을 실행합니다:
python app.py
RESTful API 구현
이제 간단한 RESTful API를 Flask로 구현해 보겠습니다.
from flask import Flask, jsonify, request
app = Flask(__name__)
tasks = [
{
'id': 1,
'title': 'Do laundry',
'done': False
},
{
'id': 2,
'title': 'Buy groceries',
'done': False
}
]
@app.route('/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
@app.route('/tasks/<int:id>', methods=['GET'])
def get_task(id):
task = next((task for task in tasks if task['id'] == id), None)
if task:
return jsonify({'task': task})
return jsonify({'message': 'Task not found'}), 404
@app.route('/tasks', methods=['POST'])
def create_task():
task = {'id': len(tasks) + 1, 'title': request.json['title'], 'done': False}
tasks.append(task)
return jsonify({'task': task}), 201
@app.route('/tasks/<int:id>', methods=['PUT'])
def update_task(id):
task = next((task for task in tasks if task['id'] == id), None)
if task:
task['title'] = request.json['title']
task['done'] = request.json['done']
return jsonify({'task': task})
return jsonify({'message': 'Task not found'}), 404
@app.route('/tasks/<int:id>', methods=['DELETE'])
def delete_task(id):
global tasks
tasks = [task for task in tasks if task['id'] != id]
return '', 204
if __name__ == '__main__':
app.run(debug=True)
위 코드는 간단한 할 일 목록을 관리하는 RESTful API를 구현한 예시입니다. 엔드포인트마다 적절한 HTTP 메서드와 처리 함수를 정의하여 요청을 처리합니다.
결론
이로써 Flask를 사용하여 RESTful API를 개발하는 방법에 대해 알아보았습니다. Flask를 이용하면 빠르고 간편하게 RESTful API를 구현할 수 있습니다.
더 많은 Flask 기능과 사용법에 대해서는 Flask 공식 문서를 참고하시기 바랍니다.