Performance: String validation (min, max, regex)
MEDIUM IMPACT
This affects the server response time and user experience by validating input strings before processing.
from fastapi import FastAPI from pydantic import BaseModel, Field app = FastAPI() class UserInput(BaseModel): username: str = Field(min_length=3, max_length=20, regex=r'^[a-zA-Z0-9_]+$') @app.post('/submit') async def submit(data: UserInput): return {'message': 'Success'}
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class UserInput(BaseModel): username: str @app.post('/submit') async def submit(data: UserInput): if len(data.username) < 3 or len(data.username) > 20: return {'error': 'Username length invalid'} import re if not re.match(r'^[a-zA-Z0-9_]+$', data.username): return {'error': 'Username pattern invalid'} return {'message': 'Success'}
| Pattern | Server Processing | Validation Calls | Response Delay | Verdict |
|---|---|---|---|---|
| Manual validation in endpoint | High (multiple checks) | Multiple per request | Increases by several ms | [X] Bad |
| Pydantic constr validation | Low (single validation) | Once per request | Minimal delay | [OK] Good |