1 changed files with 48 additions and 0 deletions
@ -0,0 +1,48 @@ |
|||||
|
# Los Campos del Cuerpo (Body - Fields) |
||||
|
|
||||
|
De la misma forma que puedes declarar parámetros con `Query`, `Path` y `Body` para realizar validaciones adicionales y de metadatos en la ruta de operacion (_path operation_) de una función, es posible realizar dichas acciones desde los modelos de Pydantic usando `Field`. |
||||
|
|
||||
|
## Importa `Field` |
||||
|
|
||||
|
Primero, importa Field: |
||||
|
|
||||
|
```Python hl_lines="4" |
||||
|
{!../../../docs_src/body_fields/tutorial001.py!} |
||||
|
``` |
||||
|
|
||||
|
!!! warning |
||||
|
Ten en cuenta que `Field` se importa directamente desde `pydantic`, no desde `fastapi` como sí se hace con (`Query`, `Path`, `Body`, etc). |
||||
|
|
||||
|
## Declara los atributos del modelo |
||||
|
|
||||
|
Puedes usar `Field` con los atributos de un modelo: |
||||
|
|
||||
|
```Python hl_lines="11-14" |
||||
|
{!../../../docs_src/body_fields/tutorial001.py!} |
||||
|
``` |
||||
|
|
||||
|
`Field` funciona de la misma forma que `Query`, `Path` y `Body`, y además cuenta con los mismos parámetros. |
||||
|
|
||||
|
!!! note "Detalles Técnicos" |
||||
|
`Query`, `Path` y otros objetos que verás mas adelante, son en realidad subclases de una clase común llamada `Param`, que a su vez es una subclase de la clase `FieldInfo` de Pydantic. |
||||
|
|
||||
|
De la misma forma, el objeto `Field` devolverá una instancia de `FieldInfo`. |
||||
|
|
||||
|
Igual que otros que verás mas adelante, `Body` también devuelve objetos que son subclase de `FieldInfo`. |
||||
|
|
||||
|
Recuerda que cuando importas `Query`, `Path`, y otros objetos desde `fastapi`, éstos son en realidad funciones que devuelven clases especiales. |
||||
|
|
||||
|
!!! tip |
||||
|
Observa cómo el atributo de cada modelo con un tipo, valor por defecto y `Field`, tiene la misma estructura que el parámetro de una función de operación de ruta (_path operation_), con `Field` en lugar de `Path`, `Query` y `Body`. |
||||
|
|
||||
|
## Información adicional |
||||
|
|
||||
|
Puedes declarar información adicional usando `Field`,` Query`, `Body`, etc. Y ésta será incluida en el esquema JSON generado. |
||||
|
|
||||
|
Aprendrás mas sobre cómo añadir información extra más adelante, cuando veas cómo declarar ejemplos. |
||||
|
|
||||
|
## Resumen |
||||
|
|
||||
|
Puedes usar `Field` de Pydantic para declarar validaciones y metadatos adicionales para los atributos del modelo. |
||||
|
|
||||
|
También puedes usar los argumentos de palabras clave (_keyword arguments_) para pasar metadatos de esquema JSON adicionales. |
Loading…
Reference in new issue