본문 바로가기
서버구축 (WEB,DB)

Flask를 사용하여 REST API를 구축하는 예제 코드

by 날으는물고기 2023. 7. 1.

Flask를 사용하여 REST API를 구축하는 예제 코드

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

댓글