Si lo necesitaras, podrías usar configuraciones y variables de entorno para configurar OpenAPI condicionalmente dependiendo del entorno, e incluso deshabilitarlo por completo.
Ocultar tus interfaces de usuario de documentación en producción no debería ser la forma de proteger tu API.
Eso no añade ninguna seguridad extra a tu API, las operaciones de ruta seguirán disponibles donde están.
Si hay una falla de seguridad en tu código, seguirá existiendo.
Ocultar la documentación simplemente hace más difícil entender cómo interactuar con tu API, y podría hacer más difícil depurarla en producción. Podría considerarse simplemente una forma de Seguridad por oscuridad.
Si quieres asegurar tu API, hay varias cosas mejores que puedes hacer, por ejemplo:
Asegúrate de tener bien definidos los modelos de Pydantic para tus cuerpos de petición y respuestas.
Configura los permisos y roles necesarios usando dependencias.
Nunca almacenes contraseñas en texto plano, solo hashes de contraseñas.
Implementa y usa herramientas criptográficas bien conocidas, como pwdlib y tokens JWT, etc.
Añade controles de permisos más granulares con scopes de OAuth2 donde sea necesario.
...etc.
Sin embargo, podrías tener un caso de uso muy específico donde realmente necesites deshabilitar la documentación de la API para algún entorno (ej. para producción) o dependiendo de configuraciones de variables de entorno.
OpenAPI Condicional desde configuraciones y variables de entorno¶
Puedes fácilmente usar la misma configuración de Pydantic para configurar tu OpenAPI generado y las interfaces de documentación.