uvicorn main:app --reload para iniciar un servidor para Fastapi. el servidor se está ejecutando pero puedo ver una advertencia en la consola que es
WARNING: The --reload flag should not be used in production on Windows.Para Fast API mi código es
from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware app = FastAPI() origins = ["https://localhost:8080"] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"]) @app.get("/") def create_todo(): return {"Ping":"Pong"}Quiero saber por qué veo eso ... cuál es la razón para ver esta advertencia...
Según la documentación de FastAPI :
Advertencia
Recuerde eliminar la opción
--reloadsi la estaba usando.La opción
--reloadconsume muchos más recursos, es más inestable, etc.Ayuda mucho durante el desarrollo, pero no deberías usarlo en producción .
Por lo tanto, FastAPI muestra esa advertencia como un recordatorio para que no use --reload en producción.
Hay múltiples "etapas" de las que solemos hablar sobre cómo se usa una aplicación (desarrollo, prueba, puesta en escena, producción, etc.); en este caso, solo el desarrollo y la producción son relevantes.
desarrollo se refiere a usted (el desarrollador) ejecutando la aplicación en su propia computadora y desarrollando activamente la aplicación. En esta situación, usar --reload está perfectamente bien, ¡es el uso para el que está diseñado! También es el caso de uso cuando es realmente útil, ya que el código cambia a medida que desarrolla su aplicación y escribe código.
producción se refiere a la etapa en la que su aplicación se pone a disposición de otras personas, generalmente en una ubicación secundaria, en un servidor o algún otro servicio, donde el código ya no cambia activamente (justo después de que haya realizado los cambios y decidido que es hora de actualizar la versión de la aplicación que otras personas ven y usan).
Cuando implementa su aplicación en producción, el código no cambia activamente mientras la aplicación se está ejecutando; usted desarrolla en su propia computadora, pero en el código del servidor no cambia antes de cargarlo o implementarlo en el servidor. Cambiar el código en esa etapa es una decisión más deliberada y, cuando eso sucede, reinicia la aplicación manualmente después de implementar el nuevo código. En ese caso, ejecutar con el indicador --reload solo agrega una sobrecarga innecesaria, ya que el servidor tiene que observar todos los archivos en la aplicación en busca de cambios, cambios que nunca suceden.
Este es particularmente el caso en Windows si la cantidad de archivos es alta y, por lo tanto, el mensaje menciona a Windows explícitamente. También me saltearía su uso en otras plataformas, pero el impacto en el rendimiento no es tan grande allí.