Skip to content

Commit a7b4c73

Browse files
📝 Add Spanish translation for the Features page (fastapi#1220)
* Spanish translation for the Features page * ✏️ Fix small typos and wording nitpicks Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
1 parent d4f3ca1 commit a7b4c73

File tree

2 files changed

+203
-0
lines changed

2 files changed

+203
-0
lines changed

docs/es/docs/features.md

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
# Características
2+
3+
## Características de FastAPI
4+
5+
**FastAPI** te provee lo siguiente:
6+
7+
### Basado en estándares abiertos
8+
9+
* <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a> para la creación de APIs, incluyendo declaraciones de <abbr title="en español: ruta. En inglés también conocido cómo: endpoints, routes">path</abbr> <abbr title="también conocido como HTTP methods, cómo POST, GET, PUT, DELETE">operations</abbr>, parámetros, <abbr title="cuerpo del mensaje HTTP">body</abbr> requests, seguridad, etc.
10+
* Documentación automática del modelo de datos con <a href="http://json-schema.org/" class="external-link" target="_blank"><strong>JSON Schema</strong></a> (dado que OpenAPI mismo está basado en JSON Schema).
11+
* Diseñado alrededor de estos estándares después de un estudio meticuloso. En vez de ser una capa añadida a último momento.
12+
* Esto también permite la **generación automática de código de cliente** para muchos lenguajes.
13+
14+
### Documentación automática
15+
16+
Documentación interactiva de la API e interfaces web de exploración. Hay múltiples opciones, dos incluídas por defecto, porque el framework está basado en OpenAPI.
17+
18+
* <a href="https://github.com/swagger-api/swagger-ui" class="external-link" target="_blank"><strong>Swagger UI</strong></a>, con exploración interactiva, llama y prueba tu API directamente desde tu navegador.
19+
20+
![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png)
21+
22+
* Documentación alternativa de la API con <a href="https://github.com/Rebilly/ReDoc" class="external-link" target="_blank"><strong>ReDoc</strong></a>.
23+
24+
![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png)
25+
26+
### Simplemente Python moderno
27+
28+
Todo está basado en las declaraciones de tipo de **Python 3.6** estándar (gracias a Pydantic). No necesitas aprender una sintáxis nueva, solo Python moderno.
29+
30+
Si necesitas un repaso de 2 minutos de cómo usar los tipos de Python (así no uses FastAPI) prueba el tutorial corto: [Python Types](python-types.md){.internal-link target=_blank}.
31+
32+
Escribes Python estándar con tipos así:
33+
34+
```Python
35+
from typing import List, Dict
36+
from datetime import date
37+
38+
from pydantic import BaseModel
39+
40+
# Declaras la variable como un str
41+
# y obtienes soporte del editor dentro de la función
42+
def main(user_id: str):
43+
return user_id
44+
45+
46+
# Un modelo de Pydantic
47+
class User(BaseModel):
48+
id: int
49+
name: str
50+
joined: date
51+
```
52+
53+
Este puede ser usado como:
54+
55+
```Python
56+
my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
57+
58+
second_user_data = {
59+
"id": 4,
60+
"name": "Mary",
61+
"joined": "2018-11-30",
62+
}
63+
64+
my_second_user: User = User(**second_user_data)
65+
```
66+
67+
!!! info
68+
`**second_user_data` significa:
69+
70+
Pasa las <abbr title="en español key se refiere a la guía de un diccionario">keys</abbr> y los valores del dict `second_user_data` directamente como argumentos de key-value, equivalente a: `User(id=4, name="Mary", joined="2018-11-30")`
71+
72+
### Soporte del editor
73+
74+
El framework fue diseñado en su totalidad para ser fácil e intuitivo de usar. Todas las decisiones fueron probadas en múltiples editores antes de comenzar el desarrollo para asegurar la mejor experiencia de desarrollo.
75+
76+
En la última encuesta a desarrolladores de Python fue claro que <a href="https://www.jetbrains.com/research/python-developers-survey-2017/#tools-and-features" class="external-link" target="_blank">la característica más usada es el "autocompletado"</a>.
77+
78+
El framework **FastAPI** está creado para satisfacer eso. El autocompletado funciona en todas partes.
79+
80+
No vas a tener que volver a la documentación seguido.
81+
82+
Así es como tu editor te puede ayudar:
83+
84+
* en <a href="https://code.visualstudio.com/" class="external-link" target="_blank">Visual Studio Code</a>:
85+
86+
![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png)
87+
88+
* en <a href="https://www.jetbrains.com/pycharm/" class="external-link" target="_blank">PyCharm</a>:
89+
90+
![editor support](https://fastapi.tiangolo.com/img/pycharm-completion.png)
91+
92+
Obtendrás completado para tu código que podrías haber considerado imposible antes. Por ejemplo, el key `price` dentro del JSON body (que podría haber estado anidado) que viene de un request.
93+
94+
Ya no pasará que escribas los nombres de key equivocados, o que tengas que revisar constantemente la documentación o desplazarte arriba y abajo para saber si usaste `username` o `user_name`.
95+
96+
### Corto
97+
98+
Tiene **configuraciones por defecto** razonables para todo, con configuraciones opcionales en todas partes. Todos los parámetros pueden ser ajustados para tus necesidades y las de tu API.
99+
100+
Pero, todo **simplemente funciona** por defecto.
101+
102+
### Validación
103+
104+
* Validación para la mayoría (¿o todos?) los **tipos de datos** de Python incluyendo:
105+
* Objetos JSON (`dict`).
106+
* JSON array (`list`) definiendo tipos de ítem.
107+
* Campos de texto (`str`) definiendo longitudes mínimas y máximas.
108+
* Números (`int`, `float`) con valores mínimos y máximos, etc.
109+
110+
* Validación para tipos más exóticos como:
111+
* URL.
112+
* Email.
113+
* UUID.
114+
* ...y otros.
115+
116+
Toda la validación es manejada por **Pydantic**, que es robusto y sólidamente establecido.
117+
118+
### Seguridad y autenticación
119+
120+
La seguridad y la autenticación están integradas. Sin ningún compromiso con bases de datos ni modelos de datos.
121+
122+
Todos los schemes de seguridad están definidos en OpenAPI incluyendo:
123+
124+
* HTTP Basic.
125+
* **OAuth2** (también con **JWT tokens**). Prueba el tutorial en [OAuth2 with JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
126+
* API keys en:
127+
* Headers.
128+
* Parámetros de Query.
129+
* Cookies, etc.
130+
131+
Más todas las características de seguridad de Starlette (incluyendo **session cookies**).
132+
133+
Todo ha sido construido como herramientas y componentes reutilizables que son fácilmente integrados con tus sistemas, almacenamiento de datos, bases de datos relacionales y no relacionales, etc.
134+
135+
### Dependency Injection
136+
137+
FastAPI incluye un sistema de <abbr title='En español: Inyección de Dependencias. También conocido en inglés cómo: "components", "resources", "services", "providers"'><strong>Dependency Injection</strong></abbr> extremadamente poderoso y fácil de usar.
138+
139+
* Inclusive las dependencias pueden tener dependencias creando una jerarquía o un **"grafo" de dependencias**.
140+
* Todas son **manejadas automáticamente** por el framework.
141+
* Todas las dependencias pueden requerir datos de los requests y aumentar las restricciones del *path operation* y la documentación automática.
142+
* **Validación automática** inclusive para parámetros del *path operation* definidos en las dependencias.
143+
* Soporte para sistemas complejos de autenticación de usuarios, **conexiones con bases de datos**, etc.
144+
* **Sin comprometerse** con bases de datos, frontends, etc. Pero permitiendo integración fácil con todos ellos.
145+
146+
### "Plug-ins" ilimitados
147+
148+
O dicho de otra manera, no hay necesidad para "plug-ins". Importa y usa el código que necesites.
149+
150+
Cualquier integración está diseñada para que sea tan sencilla de usar (con dependencias) que puedas crear un "plug-in" para tu aplicación en dos líneas de código usando la misma estructura y sintáxis que usaste para tus *path operations*.
151+
152+
### Probado
153+
154+
* <abbr title="La cantidad de código que es probado automáticamente">Cobertura de pruebas</abbr> al 100%.
155+
* Base de código 100% <abbr title="Type annotations de Python, con esto tu editor y otras herramientas externas pueden darte mejor soporte">anotada con tipos</abbr>.
156+
* Usado en aplicaciones en producción.
157+
158+
## Características de Starlette
159+
160+
**FastAPI** está basado y es completamente compatible con <a href="https://www.starlette.io/" class="external-link" target="_blank"><strong>Starlette</strong></a>. Tanto así, que cualquier código de Starlette que tengas también funcionará.
161+
162+
`FastAPI` es realmente una sub-clase de `Starlette`. Así que, si ya conoces o usas Starlette, muchas de las características funcionarán de la misma manera.
163+
164+
Con **FastAPI** obtienes todas las características de **Starlette** (porque FastAPI es simplemente Starlette en esteroides):
165+
166+
* Desempeño realmente impresionante. Es uno <a href="https://github.com/encode/starlette#performance" class="external-link" target="_blank"> de los frameworks de Python más rápidos, a la par con **NodeJS** y **Go**</a>.
167+
* Soporte para **WebSocket**.
168+
* Soporte para **GraphQL**.
169+
* <abbr title="En español: tareas que se ejecutan en el fondo, sin frenar requests, en el mismo proceso. En ingles: In-process background tasks">Tareas en background</abbr>.
170+
* Eventos de startup y shutdown.
171+
* Cliente de pruebas construido con `requests`.
172+
* **CORS**, GZip, Static Files, Streaming responses.
173+
* Soporte para **Session and Cookie**.
174+
* Cobertura de pruebas al 100%.
175+
* Base de código 100% anotada con tipos.
176+
177+
## Características de Pydantic
178+
179+
**FastAPI** está basado y es completamente compatible con <a href="https://pydantic-docs.helpmanual.io" class="external-link" target="_blank"><strong>Pydantic</strong></a>. Tanto así, que cualquier código de Pydantic que tengas también funcionará.
180+
181+
Esto incluye a librerías externas basadas en Pydantic como <abbr title="Object-Relational Mapper">ORM</abbr>s y <abbr title="Object-Document Mapper">ODM</abbr>s para bases de datos.
182+
183+
Esto también significa que en muchos casos puedes pasar el mismo objeto que obtuviste de un request **directamente a la base de datos**, dado que todo es validado automáticamente.
184+
185+
Lo mismo aplica para el sentido contrario. En muchos casos puedes pasarle el objeto que obtienes de la base de datos **directamente al cliente**.
186+
187+
Con **FastAPI** obtienes todas las características de **Pydantic** (dado que FastAPI está basado en Pydantic para todo el manejo de datos):
188+
189+
* **Sin dificultades para entender**:
190+
* No necesitas aprender un nuevo micro-lenguaje de definición de schemas.
191+
* Si sabes tipos de Python, sabes cómo usar Pydantic.
192+
* Interactúa bien con tu **<abbr title="en inglés: Integrated Development Environment, similar a editor de código">IDE</abbr>/<abbr title="Un programa que chequea errores en el código">linter</abbr>/cerebro**:
193+
* Porque las estructuras de datos de Pydantic son solo <abbr title='En español: ejemplares. Aunque a veces los llaman incorrectamente "instancias"'>instances</abbr> de clases que tu defines, el auto-completado, el linting, mypy y tu intuición deberían funcionar bien con tus datos validados.
194+
* **Rápido**:
195+
* En <a href="https://pydantic-docs.helpmanual.io/#benchmarks-tag" class="external-link" target="_blank">benchmarks</a> Pydantic es más rápido que todas las otras <abbr title='Herramienta, paquete. A veces llamado "librería"'>libraries</abbr> probadas.
196+
* Valida **estructuras complejas**:
197+
* Usa modelos jerárquicos de modelos de Pydantic, `typing` de Python, `List` y `Dict`, etc.
198+
* Los validadores también permiten que se definan fácil y claramente schemas complejos de datos. Estos son chequeados y documentados como JSON Schema.
199+
* Puedes tener objetos de **JSON profundamente anidados** y que todos sean validados y anotados.
200+
* **Extensible**:
201+
* Pydantic permite que se definan tipos de datos a la medida o puedes extender la validación con métodos en un modelo decorado con el <abbr title="en inglés: validator decorator"> decorador de validación</abbr>.
202+
* Cobertura de pruebas al 100%.

docs/es/mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ nav:
2424
- es: /es/
2525
- pt: /pt/
2626
- zh: /zh/
27+
- features.md
2728
markdown_extensions:
2829
- toc:
2930
permalink: true

0 commit comments

Comments
 (0)