Advanced Validation

Flask-JSONRPC supports basic type hints. For complex structures, use JSON Schema, Pydantic, or Marshmallow.


Using JSON Schema

@jsonrpc.method("user.create", schema={
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer"}
    },
    "required": ["name"]
})
def create_user(name: str, age: int = None):
    return {"name": name, "age": age}

Using Pydantic Models

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int | None = None

@jsonrpc.method("user.create")
def create(user: User):
    return user.dict()