[python] Marshmallow 모듈을 통해 웹 요청을 처리하는 방법

Marshmallow는 파이썬을 위한 유효성 검사 및 직렬화 라이브러리입니다. 이 모듈을 사용하면 웹 요청을 처리하고 데이터를 유효성 검사하고 직렬화 할 수 있습니다. 이제 Marshmallow를 사용하여 웹 요청을 처리하는 간단한 예제를 살펴보겠습니다.

먼저, Marshmallow를 설치해야 합니다. 다음 명령을 사용하여 Marshmallow를 설치하세요.

pip install marshmallow

다음으로, 다음과 같이 UserSchema 라는 스키마 클래스를 작성합니다. 스키마 클래스는 데이터를 유효성 검사하고 직렬화하는 데 사용됩니다.

from marshmallow import Schema, fields, ValidationError

class UserSchema(Schema):
    username = fields.Str(required=True)
    email = fields.Email(required=True)

위의 코드에서는 UserSchema 클래스를 정의하고 usernameemail 필드를 정의했습니다. 이 필드들은 유효성 검사를 위해 required=True로 설정되었습니다.

이제, Marshmallow를 사용하여 웹 요청을 처리해보겠습니다. 다음은 Flask 프레임워크를 사용한 간단한 예제입니다.

from flask import Flask, request, jsonify
from flask_marshmallow import Marshmallow
from marshmallow import ValidationError

app = Flask(__name__)
ma = Marshmallow(app)

@app.route('/users', methods=['POST'])
def create_user():
    data = request.get_json()
    
    try:
        # 데이터 유효성 검사
        user_data = UserSchema().load(data)
        
        # 데이터 저장 등의 로직 수행
        # ...
        
        return jsonify({'message': 'User created successfully'})
    except ValidationError as err:
        return jsonify({'errors': err.messages}), 400

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

위의 코드에서는 /users 엔드포인트에 대한 POST 요청을 처리하는 create_user 함수를 작성했습니다. 요청 본문의 JSON 데이터는 request.get_json()을 통해 가져옵니다. 그리고 UserSchema().load(data)를 사용하여 데이터의 유효성을 확인합니다. 유효하지 않은 경우 ValidationError 예외가 발생합니다.

마지막으로, 데이터 유효성 검사가 성공한 경우 데이터를 저장하고 성공 메시지를 반환합니다. 유효성 검사에 실패한 경우 에러 메시지와 함께 400 상태 코드를 반환합니다.

이제 마샬로우를 사용하여 웹 요청을 처리하는 방법을 알았습니다. Marshmallow를 사용하면 데이터 유효성 검사와 직렬화를 쉽게 처리할 수 있습니다. 추가로 복잡한 유효성 검사 규칙을 설정하거나 다양한 직렬화 형식을 사용할 수도 있습니다. 자세한 내용은 Marshmallow 공식 문서를 참조하세요.