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

Códigos de Estado Adicionales

🌐 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

Por defecto,FastAPI devolverá los responses usando unJSONResponse, colocando el contenido que devuelves desde tupath operation dentro de eseJSONResponse.

Usará el código de estado por defecto o el que configures en tupath operation.

Códigos de estado adicionales

Si quieres devolver códigos de estado adicionales aparte del principal, puedes hacerlo devolviendo unResponse directamente, como unJSONResponse, y configurando el código de estado adicional directamente.

Por ejemplo, supongamos que quieres tener unapath operation que permita actualizar elementos, y devuelva códigos de estado HTTP de 200 "OK" cuando sea exitoso.

Pero también quieres que acepte nuevos elementos. Y cuando los elementos no existían antes, los crea y devuelve un código de estado HTTP de 201 "Created".

Para lograr eso, importaJSONResponse, y devuelve tu contenido allí directamente, configurando elstatus_code que deseas:

fromtypingimportAnnotatedfromfastapiimportBody,FastAPI,statusfromfastapi.responsesimportJSONResponseapp=FastAPI()items={"foo":{"name":"Fighters","size":6},"bar":{"name":"Tenders","size":3}}@app.put("/items/{item_id}")asyncdefupsert_item(item_id:str,name:Annotated[str|None,Body()]=None,size:Annotated[int|None,Body()]=None,):ifitem_idinitems:item=items[item_id]item["name"]=nameitem["size"]=sizereturnitemelse:item={"name":name,"size":size}items[item_id]=itemreturnJSONResponse(status_code=status.HTTP_201_CREATED,content=item)
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportBody,FastAPI,statusfromfastapi.responsesimportJSONResponseapp=FastAPI()items={"foo":{"name":"Fighters","size":6},"bar":{"name":"Tenders","size":3}}@app.put("/items/{item_id}")asyncdefupsert_item(item_id:str,name:str|None=Body(default=None),size:int|None=Body(default=None),):ifitem_idinitems:item=items[item_id]item["name"]=nameitem["size"]=sizereturnitemelse:item={"name":name,"size":size}items[item_id]=itemreturnJSONResponse(status_code=status.HTTP_201_CREATED,content=item)

Advertencia

Cuando devuelves unResponse directamente, como en el ejemplo anterior, se devuelve directamente.

No se serializará con un modelo, etc.

Asegúrate de que tenga los datos que deseas que tenga y que los valores sean JSON válidos (si estás usandoJSONResponse).

Detalles Técnicos

También podrías usarfrom starlette.responses import JSONResponse.

FastAPI proporciona los mismosstarlette.responses quefastapi.responses solo como una conveniencia para ti, el desarrollador. Pero la mayoría de los responses disponibles provienen directamente de Starlette. Lo mismo constatus.

OpenAPI y documentación de API

Si devuelves códigos de estado adicionales y responses directamente, no se incluirán en el esquema de OpenAPI (la documentación de la API), porque FastAPI no tiene una forma de saber de antemano qué vas a devolver.

Pero puedes documentarlo en tu código, usando:Responses Adicionales.


[8]ページ先頭

©2009-2026 Movatter.jp