Movatterモバイル変換


[0]ホーム

URL:


Saltar a contenido
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

Body - Campos

🌐 Traducción por IA y humanos

Esta traducción fue hecha por IA guiada por humanos. 🤝

Podría tener errores al interpretar el significado original, o sonar poco natural, etc. 🤖

Puedes mejorar esta traducciónayudándonos a guiar mejor al LLM de IA.

Versión en inglés

De la misma manera que puedes declarar validaciones adicionales y metadatos en los parámetros de laspath operation function conQuery,Path yBody, puedes declarar validaciones y metadatos dentro de los modelos de Pydantic usandoField de Pydantic.

ImportarField

Primero, tienes que importarlo:

fromtypingimportAnnotatedfromfastapiimportBody,FastAPIfrompydanticimportBaseModel,Fieldapp=FastAPI()classItem(BaseModel):name:strdescription:str|None=Field(default=None,title="The description of the item",max_length=300)price:float=Field(gt=0,description="The price must be greater than zero")tax:float|None=None@app.put("/items/{item_id}")asyncdefupdate_item(item_id:int,item:Annotated[Item,Body(embed=True)]):results={"item_id":item_id,"item":item}returnresults
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportBody,FastAPIfrompydanticimportBaseModel,Fieldapp=FastAPI()classItem(BaseModel):name:strdescription:str|None=Field(default=None,title="The description of the item",max_length=300)price:float=Field(gt=0,description="The price must be greater than zero")tax:float|None=None@app.put("/items/{item_id}")asyncdefupdate_item(item_id:int,item:Item=Body(embed=True)):results={"item_id":item_id,"item":item}returnresults

Advertencia

Fíjate queField se importa directamente desdepydantic, no desdefastapi como el resto (Query,Path,Body, etc).

Declarar atributos del modelo

Después puedes utilizarField con los atributos del modelo:

fromtypingimportAnnotatedfromfastapiimportBody,FastAPIfrompydanticimportBaseModel,Fieldapp=FastAPI()classItem(BaseModel):name:strdescription:str|None=Field(default=None,title="The description of the item",max_length=300)price:float=Field(gt=0,description="The price must be greater than zero")tax:float|None=None@app.put("/items/{item_id}")asyncdefupdate_item(item_id:int,item:Annotated[Item,Body(embed=True)]):results={"item_id":item_id,"item":item}returnresults
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportBody,FastAPIfrompydanticimportBaseModel,Fieldapp=FastAPI()classItem(BaseModel):name:strdescription:str|None=Field(default=None,title="The description of the item",max_length=300)price:float=Field(gt=0,description="The price must be greater than zero")tax:float|None=None@app.put("/items/{item_id}")asyncdefupdate_item(item_id:int,item:Item=Body(embed=True)):results={"item_id":item_id,"item":item}returnresults

Field funciona de la misma manera queQuery,Path yBody, tiene todos los mismos parámetros, etc.

Detalles técnicos

En realidad,Query,Path y otros que verás a continuación crean objetos de subclases de una clase comúnParam, que es a su vez una subclase de la claseFieldInfo de Pydantic.

YField de Pydantic también regresa una instance deFieldInfo.

Body también devuelve objetos de una subclase deFieldInfo directamente. Y hay otros que verás más adelante que son subclases de la claseBody.

Recuerda que cuando importasQuery,Path, y otros desdefastapi, en realidad son funciones que devuelven clases especiales.

Consejo

Observa cómo cada atributo del modelo con un tipo, un valor por defecto yField tiene la misma estructura que un parámetro de unapath operation function, conField en lugar dePath,Query yBody.

Agregar información extra

Puedes declarar información extra enField,Query,Body, etc. Y será incluida en el JSON Schema generado.

Aprenderás más sobre cómo agregar información extra más adelante en la documentación, cuando aprendamos a declarar ejemplos.

Advertencia

Las claves extra pasadas aField también estarán presentes en el esquema de OpenAPI resultante para tu aplicación.Como estas claves no necesariamente tienen que ser parte de la especificación de OpenAPI, algunas herramientas de OpenAPI, por ejemploel validador de OpenAPI, podrían no funcionar con tu esquema generado.

Resumen

Puedes utilizarField de Pydantic para declarar validaciones adicionales y metadatos para los atributos del modelo.

También puedes usar los argumentos de palabra clave extra para pasar metadatos adicionales del JSON Schema.


[8]ページ先頭

©2009-2026 Movatter.jp