fast →fastapi dev FastAPI Starting development server 🚀
Searching for package file structure from directories with __init__.py files Importing from /home/user/code/awesomeapp
module 🐍 main.py
code Importing the FastAPI app object from the module with the following code:
from main import app
app Using import string: main:app
server Server started at http://127.0.0.1:8000 server Documentation at http://127.0.0.1:8000/docs
tip Running in development mode, for production use: fastapi run
Logs:
INFO Will watch for changes in these directories: ['/home/user/code/awesomeapp'] INFO Uvicorn running on http://127.0.0.1:8000(Press CTRL+C to quit) INFO Started reloader process [383138] using WatchFiles INFO Started server process [383153] INFO Waiting for application startup. INFO Application startup complete.
OpenAPI define un schema de API para tu API. Y ese schema incluye definiciones (o "schemas") de los datos enviados y recibidos por tu API usando JSON Schema, el estándar para schemas de datos JSON.
Si tienes curiosidad sobre cómo se ve el schema crudo de OpenAPI, FastAPI genera automáticamente un JSON (schema) con las descripciones de toda tu API.
El schema de OpenAPI es lo que impulsa los dos sistemas de documentación interactiva incluidos.
Y hay docenas de alternativas, todas basadas en OpenAPI. Podrías añadir fácilmente cualquiera de esas alternativas a tu aplicación construida con FastAPI.
También podrías usarlo para generar código automáticamente, para clientes que se comunican con tu API. Por ejemplo, aplicaciones frontend, móviles o IoT.
Configurar el entrypoint de la aplicación en pyproject.toml¶
Puedes configurar dónde se encuentra tu aplicación en un archivo pyproject.toml así:
[tool.fastapi]entrypoint="main:app"
Ese entrypoint le indicará al comando fastapi que debe importar la aplicación así:
frommainimportapp
Si tu código estaba estructurado así:
.
├── backend
│ ├── main.py
│ ├── __init__.py
Luego configurarías el entrypoint como:
[tool.fastapi]entrypoint="backend.main:app"
lo cual sería equivalente a:
frombackend.mainimportapp
fastapi dev con ruta o con la opción --entrypoint del CLI¶
También puedes pasar la ruta del archivo al comando fastapi dev, y adivinará el objeto de la aplicación FastAPI a usar:
$ fastapidevmain.py
O, también puedes pasar la opción --entrypoint al comando fastapi dev:
$ fastapidev--entrypointmain:app
Pero tendrías que recordar pasar la ruta\entrypoint correcta cada vez que llames al comando fastapi.
Además, es posible que otras herramientas no puedan encontrarlo, por ejemplo la Extensión de VS Code o FastAPI Cloud, por lo que se recomienda usar el entrypoint en pyproject.toml.
El CLI detectará automáticamente tu aplicación FastAPI y la desplegará en la nube. Si no has iniciado sesión, tu navegador se abrirá para completar el proceso de autenticación.
¡Eso es todo! Ahora puedes acceder a tu app en esa URL. ✨
Puedes devolver un dict, list, valores singulares como str, int, etc.
También puedes devolver modelos de Pydantic (verás más sobre eso después).
Hay muchos otros objetos y modelos que serán convertidos automáticamente a JSON (incluyendo ORMs, etc). Prueba usar tus favoritos, es muy probable que ya estén soportados.