Flask를 사용하여 REST API를 구축하는 예제 코드입니다.
from flask import Flask, jsonify, request
app = Flask(__name__)
# 예시 데이터
tasks = [
{
'id': 1,
'title': 'Task 1',
'description': 'This is task 1',
'done': False
},
{
'id': 2,
'title': 'Task 2',
'description': 'This is task 2',
'done': False
}
]
# 모든 작업 목록 반환
@app.route('/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
# 특정 작업 반환
@app.route('/tasks/<int:task_id>', methods=['GET'])
def get_task(task_id):
task = [task for task in tasks if task['id'] == task_id]
if len(task) == 0:
return jsonify({'error': 'Task not found'})
return jsonify({'task': task[0]})
# 새 작업 생성
@app.route('/tasks', methods=['POST'])
def create_task():
if not request.json or 'title' not in request.json:
return jsonify({'error': 'The title field is required'})
task = {
'id': tasks[-1]['id'] + 1,
'title': request.json['title'],
'description': request.json.get('description', ''),
'done': False
}
tasks.append(task)
return jsonify({'task': task}), 201
# 작업 업데이트
@app.route('/tasks/<int:task_id>', methods=['PUT'])
def update_task(task_id):
task = [task for task in tasks if task['id'] == task_id]
if len(task) == 0:
return jsonify({'error': 'Task not found'})
if not request.json:
return jsonify({'error': 'No data provided'})
task[0]['title'] = request.json.get('title', task[0]['title'])
task[0]['description'] = request.json.get('description', task[0]['description'])
task[0]['done'] = request.json.get('done', task[0]['done'])
return jsonify({'task': task[0]})
# 작업 삭제
@app.route('/tasks/<int:task_id>', methods=['DELETE'])
def delete_task(task_id):
task = [task for task in tasks if task['id'] == task_id]
if len(task) == 0:
return jsonify({'error': 'Task not found'})
tasks.remove(task[0])
return jsonify({'result': True})
if __name__ == '__main__':
app.run(debug=True)
위의 코드는 Flask를 사용하여 간단한 작업 관리를 위한 REST API를 구축하는 예제입니다. /tasks 엔드포인트에서 GET 요청을 보내면 모든 작업 목록을 반환하고, POST 요청을 보내면 새 작업을 생성합니다. /tasks/<task_id> 엔드포인트에서 GET 요청을 보내면 특정 작업을 반환하고, PUT 요청을 보내면 작업을 업데이트하며, DELETE 요청을 보내면 작업을 삭제합니다.
이 예제 코드를 실행하면 로컬 환경에서 REST API 서버가 실행됩니다. Flask 서버는 http://localhost:5000에서 실행되며, 위에서 정의한 엔드포인트에 따라 작업을 수행할 수 있습니다. 예를 들어, http://localhost:5000/tasks에 GET 요청을 보내면 모든 작업 목록이 반환됩니다.
이 코드를 참고하여 필요에 맞게 엔드포인트와 데이터를 수정하고 추가할 수 있습니다.
728x90
댓글