# Python - FastAPI

FastAPI  framework rápido y moderno de desarrollo web para Python que permite crear APIs de manera sencilla, rápida y con un rendimiento extraordinario. Se destaca por su velocidad, facilidad de uso y generación automática de documentación interactiva.

Algunas de sus características clave son:

1. **Velocidad:** utiliza el sistema de tipos estático de Python para obtener un rendimiento excepcional a través de la compilación y la validación estática en tiempo de ejecución.
2. **Fácil de usar:** se basa en anotaciones tipo Python (usando Pydantic) para definir los tipos de datos, lo que facilita la validación de datos y el manejo de solicitudes y respuestas.
3. **Generación automática de documentación:** cuenta con un sistema de autogeneración de documentación interactiva (OpenAPI/Swagger) a partir de los tipos definidos y las anotaciones de los métodos.
4. **Compatibilidad con asincronía:** permite el manejo de operaciones asincrónicas, lo que lo hace idóneo para aplicaciones web de alto rendimiento.
5. **Soporte para estándares web:** admite autenticación, autorización, web sockets, carga de archivos, entre otros estándares web.

FastAPI se basa en la arquitectura de Starlette y Pydantic, aprovechando las ventajas de ambas para ofrecer un marco de desarrollo rápido, moderno y altamente eficiente para la creación de APIs en Python. Además, al aprovechar las capacidades del sistema de tipos de Python, ofrece una fuerte validación estática que ayuda a prevenir errores antes de que ocurran durante el tiempo de ejecución.

En resumen, FastAPI es una herramienta poderosa para desarrollar APIs con Python, destacándose por su rendimiento, facilidad de uso y generación automática de documentación, lo que lo convierte en una elección popular para proyectos que requieren APIs rápidas, seguras y bien documentadas.

**Estructura del proyecto:**

```
.
├── compose.yaml
├── app.Dockerfile
├── app
    ├── main.py
    ├── __init__.py
```

**Despliegue de la aplicación:**

Nos dirigimos al directorio que contiene los archivos necesarios para construir el contenedor:

<pre><code><strong>cd /root/stack/python/fastapi
</strong></code></pre>

Y levantamos la aplicación:

```
docker compose up -d
```

**Comandos útiles:**

Ver los contenedores que están corriendo:

```
docker compose ps
```

Detener y eliminar la aplicación:

```
docker compose down
```

Reconstruir la aplicación tras realizar cambios en el código:

```
docker compose --build -d
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ayuda.sitioshispanos.com/menu-principal/guias/servidor-de-aplicaciones/stacks-disponibles/python/python-fastapi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
