Movatterモバイル変換


[0]ホーム

URL:


Saltar a contenido
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

OpenAPI condicional

🌐 Traducción por IA y humanos

Esta traducción fue hecha por IA guiada por humanos. 🤝

Podría tener errores al interpretar el significado original, o sonar poco natural, etc. 🤖

Puedes mejorar esta traducciónayudándonos a guiar mejor al LLM de IA.

Versión en inglés

Si lo necesitaras, podrías usar configuraciones y variables de entorno para configurar OpenAPI condicionalmente según el entorno, e incluso desactivarlo por completo.

Sobre seguridad, APIs y documentación

Ocultar las interfaces de usuario de la documentación en producciónno debería ser la forma de proteger tu API.

Eso no añade ninguna seguridad extra a tu API, laspath operations seguirán estando disponibles donde están.

Si hay una falla de seguridad en tu código, seguirá existiendo.

Ocultar la documentación solo hace que sea más difícil entender cómo interactuar con tu API y podría dificultar más depurarla en producción. Podría considerarse simplemente una forma deSeguridad mediante oscuridad.

Si quieres asegurar tu API, hay varias cosas mejores que puedes hacer, por ejemplo:

  • Asegúrate de tener modelos Pydantic bien definidos para tus request bodies y responses.
  • Configura los permisos y roles necesarios usando dependencias.
  • Nunca guardes contraseñas en texto plano, solo hashes de contraseñas.
  • Implementa y utiliza herramientas criptográficas bien conocidas, como pwdlib y JWT tokens, etc.
  • Añade controles de permisos más detallados con Scopes de OAuth2 donde sea necesario.
  • ...etc.

No obstante, podrías tener un caso de uso muy específico donde realmente necesites desactivar la documentación de la API para algún entorno (por ejemplo, para producción) o dependiendo de configuraciones de variables de entorno.

OpenAPI condicional desde configuraciones y variables de entorno

Puedes usar fácilmente las mismas configuraciones de Pydantic para configurar tu OpenAPI generado y las interfaces de usuario de la documentación.

Por ejemplo:

fromfastapiimportFastAPIfrompydantic_settingsimportBaseSettingsclassSettings(BaseSettings):openapi_url:str="/openapi.json"settings=Settings()app=FastAPI(openapi_url=settings.openapi_url)@app.get("/")defroot():return{"message":"Hello World"}

Aquí declaramos la configuraciónopenapi_url con el mismo valor por defecto de"/openapi.json".

Y luego la usamos al crear la app deFastAPI.

Entonces podrías desactivar OpenAPI (incluyendo las UI de documentación) configurando la variable de entornoOPENAPI_URL a una string vacía, así:

$OPENAPI_URL=uvicornmain:app<span style="color: green;">INFO</span>:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

Luego, si vas a las URLs en/openapi.json,/docs, o/redoc, solo obtendrás un error404 Not Found como:

{"detail":"Not Found"}

[8]ページ先頭

©2009-2026 Movatter.jp