[python] CRUD 기능에 대한 API 디자인
본 문서에서는 Python을 사용하여 CRUD(Create, Read, Update, Delete) 기능을 갖춘 API를 디자인하는 방법에 대해 알아보겠습니다.
1. 데이터 모델 설계
먼저, API에서 다룰 데이터의 모델을 설계해야 합니다. 각 데이터 모델은 필드, 타입, 유효성 검사 규칙 등을 포함해야 합니다.
다음은 사용자 모델의 예시입니다.
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password = db.Column(db.String(80), nullable=False)
2. RESTful API 디자인
다음으로, Flask를 사용하여 RESTful API를 디자인합니다.
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
db = SQLAlchemy(app)
# Create
@app.route('/user', methods=['POST'])
def create_user():
data = request.get_json()
new_user = User(username=data['username'], email=data['email'], password=data['password'])
db.session.add(new_user)
db.session.commit()
return jsonify({'message': 'New user created!'})
# Read
@app.route('/user/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = User.query.get_or_404(user_id)
return jsonify({'username': user.username, 'email': user.email})
# Update
@app.route('/user/<int:user_id>', methods=['PUT'])
def update_user(user_id):
user = User.query.get_or_404(user_id)
data = request.get_json()
user.username = data['username']
user.email = data['email']
db.session.commit()
return jsonify({'message': 'User updated!'})
# Delete
@app.route('/user/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
user = User.query.get_or_404(user_id)
db.session.delete(user)
db.session.commit()
return jsonify({'message': 'User deleted!'})
if __name__ == '__main__':
app.run(debug=True)
3. 테스트
API가 올바르게 동작하는지 확인하기 위해 테스트를 진행해야 합니다.
이를 위해 curl
이나 API 개발 도구를 사용하여 각 기능이 예상한 대로 동작하는지 확인해야 합니다.
결론
Python과 Flask를 사용하여 CRUD 기능을 갖춘 API를 디자인하는 방법에 대해 알아보았습니다. 이를 통해 데이터 모델링부터 실제 API 구현, 테스트에 이르기까지의 전체적인 과정을 이해할 수 있었습니다.