From 3d1b107d70f0bb03966fbb8b7aaac2ac33f621d3 Mon Sep 17 00:00:00 2001 From: Juan Funez Date: Sun, 4 Jul 2021 16:14:29 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90=20Add=20Spanish=20translation=20fo?= =?UTF-8?q?r=20`advanced/additional-status-codes.md`=20(#1252)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Camila Gutierrez --- .../docs/advanced/additional-status-codes.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/es/docs/advanced/additional-status-codes.md diff --git a/docs/es/docs/advanced/additional-status-codes.md b/docs/es/docs/advanced/additional-status-codes.md new file mode 100644 index 000000000..67224fb36 --- /dev/null +++ b/docs/es/docs/advanced/additional-status-codes.md @@ -0,0 +1,37 @@ +# Códigos de estado adicionales + +Por defecto, **FastAPI** devolverá las respuestas utilizando una `JSONResponse`, poniendo el contenido que devuelves en tu *operación de path* dentro de esa `JSONResponse`. + +Utilizará el código de estado por defecto, o el que hayas asignado en tu *operación de path*. + +## Códigos de estado adicionales + +Si quieres devolver códigos de estado adicionales además del principal, puedes hacerlo devolviendo directamente una `Response`, como una `JSONResponse`, y asignar directamente el código de estado adicional. + +Por ejemplo, digamos que quieres tener una *operación de path* que permita actualizar ítems y devolver códigos de estado HTTP 200 "OK" cuando sea exitosa. + +Pero también quieres que acepte nuevos ítems. Cuando los ítems no existan anteriormente, serán creados y devolverá un código de estado HTTP 201 "Created". + +Para conseguir esto importa `JSONResponse` y devuelve ahí directamente tu contenido, asignando el `status_code` que quieras: + +```Python hl_lines="2 19" +{!../../../docs_src/additional_status_codes/tutorial001.py!} +``` + +!!! warning "Advertencia" + Cuando devuelves directamente una `Response`, como en los ejemplos anteriores, será devuelta directamente. + + No será serializado con el modelo, etc. + + Asegurate de que la respuesta tenga los datos que quieras, y que los valores sean JSON válidos (si estás usando `JSONResponse`). + +!!! note "Detalles Técnicos" + También podrías utilizar `from starlette.responses import JSONResponse`. + + **FastAPI** provee las mismas `starlette.responses` que `fastapi.responses` simplemente como una convención para ti, el desarrollador. Pero la mayoría de las respuestas disponibles vienen directamente de Starlette. Lo mismo con `status`. + +## OpenAPI y documentación de API + +Si quieres devolver códigos de estado y respuestas adicionales directamente, estas no estarán incluidas en el schema de OpenAPI (documentación de API), porque FastAPI no tiene una manera de conocer de antemano lo que vas a devolver. + +Pero puedes documentar eso en tu código usando [Respuestas Adicionales](additional-responses.md){.internal-link target=_blank}.