๐Ÿ“Using schematics as Validation

๊น€์„ธ์ค€ยท2021๋…„ 4์›” 5์ผ
0

Using Log - ๋„๊ตฌ ์‚ฌ์šฉ๊ธฐ!

๋ชฉ๋ก ๋ณด๊ธฐ
1/3

Schema Class๋ฅผ ๋งŒ๋“ค์–ด ๊ธฐ๋ณธ์ ์ธ key์™€ ํ•„์ˆ˜ ์—ฌ๋ถ€, ๊ธ€์ž ์ˆ˜ ์ œํ•œ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋ช…์‹œํ•œ๋‹ค.

from schematics.models import Model
from schematics.types import StringType

class Schema(Model):
    id = StringType(
        serialized_name='id',
        required=True
    )

    password = StringType(
        serialized_name='password',
        required=True,
				min_length=8,
				max_length=20
    )

๊ฒ€์ฆ์€ validate() ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ exception์ด ์ผ์–ด๋‚˜๋ฉด ๊ฒ€์ฆ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด๊ธฐ์—

400 client error ๋ฅผ return ํ•œ๋‹ค.

def validate_JSON(model):
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            try:
                instance = model(getattr(request, 'json'))
                instance.validate()
            except:
                abort(400, "check JSON key and values")

            return func(*args, **kwargs)
        return wrapper
    return decorator

0๊ฐœ์˜ ๋Œ“๊ธ€