Saltar a contenido

json_schema

app.common.middlewares.json_schema

Un Middleware (clase) para la validación del cuerpo de la peticion (request body) utilizando JSONSchema v. draft 2020-12.

Para más información, te recomendamos leer la documentación del Proyecto.

ValidateSchema

Una clase utilizada como DI, para obtener el cuerpo de la peticion (request body), validarlo con JSONSchema v. draft 2020-12, y utilizarlo dentro de una vista (view).

Notes
  • Solo está disponible para métodos POST y PUT.

Raises:

Type Description
HTTPException

una excepción para devolver respuestas HTTP con errores al cliente

exceptions

excepciones generadas por jsonschema

DefaultException

excepciones para el manejo de errores personalizados

None

en caso de un error

Examples:

1
2
3
4
5
6
7
8
from app.common.middlewares.json_schema import ValidateSchema

schema_example: dict[str: Any] = {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
}

async def post(body: dict[str, Any] = Depends(ValidateSchema(schema_example))):
    ...

__init__(schema)

Constructor de la clase ValidateSchema

Parameters:

Name Type Description Default
schema dict[StrictStr, Any]

el esquema a validar

required

__call__(request) async

Este método permite que la instancia de esta clase, sea callable, y de esta manera podemos "parametrizar" nuestra dependencia.

Parameters:

Name Type Description Default
request Request

una instancia de Request para las conexiones HTTP entrantes.

required
Notes

Internamente:

  • se utiliza el objeto request.json() para realizar la validación contra el esquema enviado.
  • se utiliza request.method para realizar otras validaciones

Raises:

Type Description
HTTPException

una excepción para devolver respuestas HTTP con errores al cliente

DefaultException

excepciones para el manejo de errores personalizados

None

en caso de un error

Returns:

Type Description
Optional[dict[str, Any]]

el cuerpo de la petición (request body), usualmente como un diccionario