mirror of https://github.com/tiangolo/fastapi.git
📝 Update Spanish translation docs for consistency (#12044)
This commit is contained in:
parent
63ae0f1070
commit
6ba8407ff3
|
|
@ -18,7 +18,7 @@ Para conseguir esto importa `JSONResponse` y devuelve ahí directamente tu conte
|
|||
{!../../../docs_src/additional_status_codes/tutorial001.py!}
|
||||
```
|
||||
|
||||
/// warning | "Advertencia"
|
||||
/// warning | Advertencia
|
||||
|
||||
Cuando devuelves directamente una `Response`, como en los ejemplos anteriores, será devuelta directamente.
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ Asegúrate de que la respuesta tenga los datos que quieras, y que los valores se
|
|||
|
||||
///
|
||||
|
||||
/// note | "Detalles Técnicos"
|
||||
/// note | Detalles Técnicos
|
||||
|
||||
También podrías utilizar `from starlette.responses import JSONResponse`.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ El [Tutorial - Guía de Usuario](../tutorial/index.md){.internal-link target=_bl
|
|||
|
||||
En las secciones siguientes verás otras opciones, configuraciones, y características adicionales.
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
Las próximas secciones **no son necesariamente "avanzadas"**.
|
||||
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@ Deberías hacerlo después de adicionar todas tus *operaciones de path*.
|
|||
{!../../../docs_src/path_operation_advanced_configuration/tutorial002.py!}
|
||||
```
|
||||
|
||||
/// tip | "Consejo"
|
||||
/// tip | Consejo
|
||||
|
||||
Si llamas manualmente a `app.openapi()`, debes actualizar el `operationId`s antes de hacerlo.
|
||||
|
||||
///
|
||||
|
||||
/// warning | "Advertencia"
|
||||
/// warning | Advertencia
|
||||
|
||||
Si haces esto, debes asegurarte de que cada una de tus *funciones de las operaciones de path* tenga un nombre único.
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Esto puede ser útil, por ejemplo, para devolver cookies o headers personalizado
|
|||
|
||||
De hecho, puedes devolver cualquier `Response` o cualquier subclase de la misma.
|
||||
|
||||
/// tip | "Consejo"
|
||||
/// tip | Consejo
|
||||
|
||||
`JSONResponse` en sí misma es una subclase de `Response`.
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ Para esos casos, puedes usar el `jsonable_encoder` para convertir tus datos ante
|
|||
{!../../../docs_src/response_directly/tutorial001.py!}
|
||||
```
|
||||
|
||||
/// note | "Detalles Técnicos"
|
||||
/// note | Detalles Técnicos
|
||||
|
||||
También puedes usar `from starlette.responses import JSONResponse`.
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ Crea un response tal como se describe en [Retornar una respuesta directamente](r
|
|||
{!../../../docs_src/response_headers/tutorial001.py!}
|
||||
```
|
||||
|
||||
/// note | "Detalles Técnicos"
|
||||
/// note | Detalles Técnicos
|
||||
|
||||
También podrías utilizar `from starlette.responses import Response` o `from starlette.responses import JSONResponse`.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
Hay algunas características adicionales para manejar la seguridad además de las que se tratan en el [Tutorial - Guía de Usuario: Seguridad](../../tutorial/security/index.md){.internal-link target=_blank}.
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
Las siguientes secciones **no necesariamente son "avanzadas"**.
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ async def read_results():
|
|||
return results
|
||||
```
|
||||
|
||||
/// note | "Nota"
|
||||
/// note | Nota
|
||||
|
||||
Solo puedes usar `await` dentro de funciones creadas con `async def`.
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ Tú y esa persona 😍 se comen las hamburguesas 🍔 y la pasan genial ✨.
|
|||
|
||||
<img src="https://fastapi.tiangolo.com/img/async/concurrent-burgers/concurrent-burgers-07.png" alt="illustration">
|
||||
|
||||
/// info
|
||||
/// info | Información
|
||||
|
||||
Las ilustraciones fueron creados por <a href="https://www.instagram.com/ketrinadrawsalot" class="external-link" target="_blank">Ketrina Thompson</a>. 🎨
|
||||
|
||||
|
|
@ -204,7 +204,7 @@ Sólo las comes y listo 🍔 ⏹.
|
|||
|
||||
No has hablado ni coqueteado mucho, ya que has pasado la mayor parte del tiempo esperando 🕙 frente al mostrador 😞.
|
||||
|
||||
/// info
|
||||
/// info | Información
|
||||
|
||||
Las ilustraciones fueron creados por <a href="https://www.instagram.com/ketrinadrawsalot" class="external-link" target="_blank">Ketrina Thompson</a>. 🎨
|
||||
|
||||
|
|
@ -396,7 +396,7 @@ Todo eso es lo que impulsa FastAPI (a través de Starlette) y lo que hace que te
|
|||
|
||||
## Detalles muy técnicos
|
||||
|
||||
/// warning | "Advertencia"
|
||||
/// warning | Advertencia
|
||||
|
||||
Probablemente puedas saltarte esto.
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ Siguiendo las convenciones de *Semantic Versioning*, cualquier versión por deba
|
|||
|
||||
FastAPI también sigue la convención de que cualquier cambio hecho en una <abbr title="versiones de parche">"PATCH" version</abbr> es para solucionar errores y <abbr title="cambios que no rompan funcionalidades o compatibilidad">*non-breaking changes*</abbr>.
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
El <abbr title="parche">"PATCH"</abbr> es el último número, por ejemplo, en `0.2.3`, la <abbr title="versiones de parche">PATCH version</abbr> es `3`.
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ fastapi>=0.45.0,<0.46.0
|
|||
|
||||
En versiones <abbr title="versiones menores">"MINOR"</abbr> son añadidas nuevas características y posibles <abbr title="Cambios que rompen posibles funcionalidades o compatibilidad">breaking changes</abbr>.
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
La versión "MINOR" es el número en el medio, por ejemplo, en `0.2.3`, la <abbr title="versión menor">"MINOR" version</abbr> es `2`.
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ second_user_data = {
|
|||
my_second_user: User = User(**second_user_data)
|
||||
```
|
||||
|
||||
/// info
|
||||
/// info | Información
|
||||
|
||||
`**second_user_data` significa:
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Como **FastAPI** está basado en el estándar **ASGI**, es muy fácil integrar c
|
|||
|
||||
Puedes combinar *operaciones de path* regulares de la library de FastAPI con GraphQL en la misma aplicación.
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
**GraphQL** resuelve algunos casos de uso específicos.
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ Versiones anteriores de Starlette incluyen la clase `GraphQLApp` para integrarlo
|
|||
|
||||
Esto fue marcado como obsoleto en Starlette, pero si aún tienes código que lo usa, puedes fácilmente **migrar** a <a href="https://github.com/ciscorn/starlette-graphene3" class="external-link" target="_blank">starlette-graphene3</a>, la cual cubre el mismo caso de uso y tiene una **interfaz casi idéntica.**
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
Si necesitas GraphQL, te recomendaría revisar <a href="https://strawberry.rocks/" class="external-link" target="_blank">Strawberry</a>, que es basada en anotaciones de tipo en vez de clases y tipos personalizados.
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Todo **FastAPI** está basado en estos type hints, lo que le da muchas ventajas
|
|||
|
||||
Pero, así nunca uses **FastAPI** te beneficiarás de aprender un poco sobre los type hints.
|
||||
|
||||
/// note | "Nota"
|
||||
/// note | Nota
|
||||
|
||||
Si eres un experto en Python y ya lo sabes todo sobre los type hints, salta al siguiente capítulo.
|
||||
|
||||
|
|
@ -256,7 +256,7 @@ Tomado de la documentación oficial de Pydantic:
|
|||
{!../../../docs_src/python_types/tutorial010.py!}
|
||||
```
|
||||
|
||||
/// info | "Información"
|
||||
/// info | Información
|
||||
|
||||
Para aprender más sobre <a href="https://docs.pydantic.dev/" class="external-link" target="_blank">Pydantic mira su documentación</a>.
|
||||
|
||||
|
|
@ -288,7 +288,7 @@ Puede que todo esto suene abstracto. Pero no te preocupes que todo lo verás en
|
|||
|
||||
Lo importante es que usando los tipos de Python estándar en un único lugar (en vez de añadir más clases, decorator, etc.) **FastAPI** hará mucho del trabajo por ti.
|
||||
|
||||
/// info | "Información"
|
||||
/// info | Información
|
||||
|
||||
Si ya pasaste por todo el tutorial y volviste a la sección de los tipos, una buena referencia es <a href="https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html" class="external-link" target="_blank">la "cheat sheet" de `mypy`</a>.
|
||||
|
||||
|
|
|
|||
|
|
@ -32,9 +32,9 @@ Primero importa `Cookie`:
|
|||
|
||||
//// tab | Python 3.10+ non-Annotated
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
Prefer to use the `Annotated` version if possible.
|
||||
Es preferible utilizar la versión `Annotated` si es posible.
|
||||
|
||||
///
|
||||
|
||||
|
|
@ -46,9 +46,9 @@ Prefer to use the `Annotated` version if possible.
|
|||
|
||||
//// tab | Python 3.8+ non-Annotated
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
Prefer to use the `Annotated` version if possible.
|
||||
Es preferible utilizar la versión `Annotated` si es posible.
|
||||
|
||||
///
|
||||
|
||||
|
|
@ -90,9 +90,9 @@ El primer valor es el valor por defecto, puedes pasar todos los parámetros adic
|
|||
|
||||
//// tab | Python 3.10+ non-Annotated
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
Prefer to use the `Annotated` version if possible.
|
||||
Es preferible utilizar la versión `Annotated` si es posible.
|
||||
|
||||
///
|
||||
|
||||
|
|
@ -104,9 +104,9 @@ Prefer to use the `Annotated` version if possible.
|
|||
|
||||
//// tab | Python 3.8+ non-Annotated
|
||||
|
||||
/// tip
|
||||
/// tip | Consejo
|
||||
|
||||
Prefer to use the `Annotated` version if possible.
|
||||
Es preferible utilizar la versión `Annotated` si es posible.
|
||||
|
||||
///
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ $ uvicorn main:app --reload
|
|||
|
||||
</div>
|
||||
|
||||
/// note | "Nota"
|
||||
/// note | Nota
|
||||
|
||||
El comando `uvicorn main:app` se refiere a:
|
||||
|
||||
|
|
@ -139,7 +139,7 @@ También podrías usarlo para generar código automáticamente, para los cliente
|
|||
|
||||
`FastAPI` es una clase de Python que provee toda la funcionalidad para tu API.
|
||||
|
||||
/// note | "Detalles Técnicos"
|
||||
/// note | Detalles Técnicos
|
||||
|
||||
`FastAPI` es una clase que hereda directamente de `Starlette`.
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ https://example.com/items/foo
|
|||
/items/foo
|
||||
```
|
||||
|
||||
/// info | "Información"
|
||||
/// info | Información
|
||||
|
||||
Un "path" también se conoce habitualmente como "endpoint", "route" o "ruta".
|
||||
|
||||
|
|
@ -259,7 +259,7 @@ El `@app.get("/")` le dice a **FastAPI** que la función que tiene justo debajo
|
|||
* el path `/`
|
||||
* usando una <abbr title="an HTTP GET method">operación <code>get</code></abbr>
|
||||
|
||||
/// info | "Información sobre `@decorator`"
|
||||
/// info | Información sobre `@decorator`
|
||||
|
||||
Esa sintaxis `@algo` se llama un "decorador" en Python.
|
||||
|
||||
|
|
@ -286,7 +286,7 @@ y las más exóticas:
|
|||
* `@app.patch()`
|
||||
* `@app.trace()`
|
||||
|
||||
/// tip | "Consejo"
|
||||
/// tip | Consejo
|
||||
|
||||
Tienes la libertad de usar cada operación (método de HTTP) como quieras.
|
||||
|
||||
|
|
@ -324,7 +324,7 @@ También podrías definirla como una función estándar en lugar de `async def`:
|
|||
{!../../../docs_src/first_steps/tutorial003.py!}
|
||||
```
|
||||
|
||||
/// note | "Nota"
|
||||
/// note | Nota
|
||||
|
||||
Si no sabes la diferencia, revisa el [Async: *"¿Tienes prisa?"*](../async.md#tienes-prisa){.internal-link target=_blank}.
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ Puedes declarar el tipo de un parámetro de path en la función usando las anota
|
|||
|
||||
En este caso, `item_id` es declarado como un `int`.
|
||||
|
||||
/// check | "Revisa"
|
||||
/// check | Revisa
|
||||
|
||||
Esto te dará soporte en el editor dentro de tu función, con chequeo de errores, auto-completado, etc.
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ Si corres este ejemplo y abres tu navegador en <a href="http://127.0.0.1:8000/it
|
|||
{"item_id":3}
|
||||
```
|
||||
|
||||
/// check | "Revisa"
|
||||
/// check | Revisa
|
||||
|
||||
Observa que el valor que recibió (y devolvió) tu función es `3`, como un Python `int`, y no un string `"3"`.
|
||||
|
||||
|
|
@ -69,7 +69,7 @@ debido a que el parámetro de path `item_id` tenía el valor `"foo"`, que no es
|
|||
|
||||
El mismo error aparecería si pasaras un `float` en vez de un `int` como en: <a href="http://127.0.0.1:8000/items/4.2" class="external-link" target="_blank">http://127.0.0.1:8000/items/4.2</a>
|
||||
|
||||
/// check | "Revisa"
|
||||
/// check | Revisa
|
||||
|
||||
Así, con la misma declaración de tipo de Python, **FastAPI** te da validación de datos.
|
||||
|
||||
|
|
@ -85,7 +85,7 @@ Cuando abras tu navegador en <a href="http://127.0.0.1:8000/docs" class="externa
|
|||
|
||||
<img src="/img/tutorial/path-params/image01.png">
|
||||
|
||||
/// check | "Revisa"
|
||||
/// check | Revisa
|
||||
|
||||
Nuevamente, con la misma declaración de tipo de Python, **FastAPI** te da documentación automática e interactiva (integrándose con Swagger UI)
|
||||
|
||||
|
|
@ -143,13 +143,13 @@ Luego crea atributos de clase con valores fijos, que serán los valores disponib
|
|||
{!../../../docs_src/path_params/tutorial005.py!}
|
||||
```
|
||||
|
||||
/// info | "Información"
|
||||
/// info | Información
|
||||
|
||||
Las <a href="https://docs.python.org/3/library/enum.html" class="external-link" target="_blank">Enumerations (o enums) están disponibles en Python</a> desde la versión 3.4.
|
||||
|
||||
///
|
||||
|
||||
/// tip | "Consejo"
|
||||
/// tip | Consejo
|
||||
|
||||
Si lo estás dudando, "AlexNet", "ResNet", y "LeNet" son solo nombres de <abbr title="Técnicamente, arquitecturas de modelos de Deep Learning">modelos</abbr> de Machine Learning.
|
||||
|
||||
|
|
@ -189,7 +189,7 @@ Puedes obtener el valor exacto (un `str` en este caso) usando `model_name.value`
|
|||
{!../../../docs_src/path_params/tutorial005.py!}
|
||||
```
|
||||
|
||||
/// tip | "Consejo"
|
||||
/// tip | Consejo
|
||||
|
||||
También podrías obtener el valor `"lenet"` con `ModelName.lenet.value`.
|
||||
|
||||
|
|
@ -246,7 +246,7 @@ Entonces lo puedes usar con:
|
|||
{!../../../docs_src/path_params/tutorial004.py!}
|
||||
```
|
||||
|
||||
/// tip | "Consejo"
|
||||
/// tip | Consejo
|
||||
|
||||
Podrías necesitar que el parámetro contenga `/home/johndoe/myfile.txt` con un slash inicial (`/`).
|
||||
|
||||
|
|
|
|||
|
|
@ -69,13 +69,13 @@ Del mismo modo puedes declarar parámetros de query opcionales definiendo el val
|
|||
|
||||
En este caso el parámetro de la función `q` será opcional y será `None` por defecto.
|
||||
|
||||
/// check | "Revisa"
|
||||
/// check | Revisa
|
||||
|
||||
También puedes notar que **FastAPI** es lo suficientemente inteligente para darse cuenta de que el parámetro de path `item_id` es un parámetro de path y que `q` no lo es, y por lo tanto es un parámetro de query.
|
||||
|
||||
///
|
||||
|
||||
/// note | "Nota"
|
||||
/// note | Nota
|
||||
|
||||
FastAPI sabrá que `q` es opcional por el `= None`.
|
||||
|
||||
|
|
@ -199,7 +199,7 @@ En este caso hay 3 parámetros de query:
|
|||
* `skip`, un `int` con un valor por defecto de `0`.
|
||||
* `limit`, un `int` opcional.
|
||||
|
||||
/// tip | "Consejo"
|
||||
/// tip | Consejo
|
||||
|
||||
También podrías usar los `Enum`s de la misma manera que con los [Parámetros de path](path-params.md#valores-predefinidos){.internal-link target=_blank}.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue