Juan Guillermo Morales Durán
uvicorn main:app --host 0.0.0.0 --port $PORT
Desplegar una API REST con FastAPI en Railway es el paso que convierte tu código local en una URL pública que cualquiera puede usar desde Internet. Si vienes trabajando proyectos con la Claude API y quieres unificarlos y ponerlos en producción, aquí verás cómo hacerlo de principio a fin.
El objetivo es tomar las herramientas construidas a lo largo del curso (un chatbot, un extractor de JSON y un agente con tools) y transformarlas en una sola aplicación desplegada con variables de entorno seguras.
Qué se necesita para transformar los proyectos en una API REST
La base es FastAPI, un framework de Python para construir APIs. Desde ahí importamos varias piezas clave que hacen posible el proyecto.
El modelo usado es Claude Sonnet 4.6 y el agente tiene un máximo de cuatro pasos [00:52]. La aplicación se llama Claude API Hub, con su versión, sus tipados y el formato de dato que recibe cada entrada.
¿Para qué sirve HTMLResponse en FastAPI? Permite que tu API devuelva y renderice HTML directamente en el navegador, en lugar de solo datos JSON. Así puedes mostrar un front-end completo desde el mismo servidor de la API.
Cómo funcionan los endpoints y el index HTML
El archivo incluye un index HTML con estilos CSS y un body que contiene los tres proyectos: el chatbot, el extractor JSON y el agente con tools. Se agrega algo de JavaScript solo para la funcionalidad de hacer los llamados.
Lo importante vive en los endpoints. Por ejemplo, el de /api/chat agrupa la llamada que ya construimos en clases anteriores hacia messages.create, usando el modelo definido arriba, la cantidad máxima de tokens y los mensajes enviados por el payload [02:00].
Las demás rutas son muy parecidas: solo cambian las funciones que ejecutan según cada proyecto. Ese archivo compilado es la aplicación que le indicaremos a Railway que despliegue.
Cómo crear una cuenta y un proyecto en Railway
Railway es la plataforma donde vive el despliegue. Puedes entrar a railway.com y crear una cuenta gratuita.
Al seleccionarlo, Railway empieza a desplegarlo. Y aquí viene el primer detalle: el build inicial va a fallar [03:40].
¿Por qué falla el primer build en Railway? Porque el repositorio tiene una estructura por clases y carpetas, y Railway no sabe cuál desplegar como principal. Debes indicarle la ruta correcta en settings para que apunte a la carpeta del proyecto final.
Cómo configurar la ruta y el comando de inicio
En el panel de settings buscas la opción del repositorio y agregas una ruta principal. En este caso apunta a la carpeta de Python clase 16 final [04:04].
Cada cambio que hagas genera un nuevo deploy al aplicarlo. Aun así, faltan dos cosas para que funcione:
Ese comando queda disponible en la sección de recursos de la clase y en el archivo README del proyecto, listo para copiar y pegar en el apartado de deploy.
Cómo generar la URL pública y probar la aplicación
Una vez que el despliegue termina correctamente, todavía falta lo esencial: una URL para conectarte desde Internet.
En el apartado de networking le dices generar dominio. Colocas el número de puerto que recomienda, el 8080, y confirmas [05:52]. Con eso ya tienes el dominio para acceder a tu aplicación.
En la pestaña de deployments puedes seguir el progreso. El primer despliegue tarda más porque construye la imagen desde cero; los siguientes agrupan y suben menos archivos, así que son más rápidos.
Qué se ve al abrir el proyecto en el navegador
Al abrir la URL aparece el front-end con los tres proyectos funcionando bajo el mismo enlace. Por ejemplo, en el chatbot puedes enviar el prompt "Dame tres ideas para practicar con la Claude API".
El placeholder cambia a cargando mientras hace la petición a la API de Claude, y luego devuelve una respuesta estructurada [06:40]:
Cada idea llega con una descripción del proyecto, lo que aprenderás y un snippet de código para ejecutarlo. Y aquí está lo interesante: las otras herramientas del mismo proyecto se prueban igual, todas desde el mismo dominio.
Con esto cierras el recorrido que empezó en la primera llamada a la API y termina con un chatbot desplegado, pasando por memoria, documentos, JSON, tool use, agentes, caching, batch processing y producción. Ahora tienes las bases para integrar la Claude API en productos reales. ¿Qué proyecto vas a desplegar primero? Cuéntamelo en los comentarios.
📚 CLASE: Cómo desplegar tu API de Claude en Railway (Curso de Claude API)
━━━━━━━━━━━━━━━━━━
🎯 IDEA PRINCIPAL
Publicar un backend o agente en Python con la API de Claude en la nube utilizando Railway para convertir un script local en un servicio web accesible mediante HTTPS y variables de entorno seguras.
━━━━━━━━━━━━━━━━━━
⚡ RESUMEN ULTRA RÁPIDO
🟢 Conecta tu repositorio de GitHub a Railway para habilitar un flujo de despliegue continuo (CI/CD) automático.
🔵 Inyecta tus llaves secretas de Anthropic en la sección de Variables del proyecto para evitar subirlas al código fuente.
🟡 Railway detecta automáticamente aplicaciones Python mediante el archivo requirements.txt o Procfile.
🔴 Subir tu API key hardcodeada dentro de los archivos del repositorio compromete la seguridad de tu cuenta de forma pública.
🟢 Expón el puerto asignado por la variable de entorno PORT en tu servidor web (FastAPI, Flask) para recibir tráfico externo.
━━━━━━━━━━━━━━━━━━
🔑 LO IMPORTANTE
🔵 Railway administra el entorno de ejecución, la asignación de certificados SSL de forma automática y la gestión del proceso del servidor.
🔴 Omitir la configuración del archivo Procfile o del comando de inicio en la plataforma provocará un error de despliegue por falta de un entrypoint.
🟡 Usar servidores de producción como uvicorn o gunicorn en el entorno desplegado garantiza estabilidad y concurrencia adecuada frente al servidor de desarrollo de Python.
━━━━━━━━━━━━━━━━━━
🧩 MODELO MENTAL
Código Local / Git → Configurar Variables en Railway (ANTHROPIC_API_KEY) → Auto-Build & Deploy → URL HTTPS Pública
━━━━━━━━━━━━━━━━━━
🚀 ACCIONES PARA HOY
🟢 Mueve tu llave de Anthropic a un archivo .env local e ignóralo en Git agregándolo a tu .gitignore.
🟢 Crea un archivo requirements.txt en la raíz de tu proyecto ejecutando pip freeze > requirements.txt.
🟢 Agrega las variables de entorno en la interfaz de Railway y ejecuta tu primer despliegue vinculando el repositorio.
━━━━━━━━━━━━━━━━━━
🟣 VENTAJA PROFESIONAL
En arquitecturas listas para producción, los despliegues deben contemplar comprobaciones de estado (health checks) y reinicios automáticos ante fallos.
🟣 Hack de operaciones: Configura un endpoint de salud /health en tu API de Python y vincúlalo en los Health Checks de Railway; de esta forma, si el proceso o la integración con Claude queda colgada, la plataforma reiniciará el contenedor automáticamente sin intervención humana.
━━━━━━━━━━━━━━━━━━
📝 CIERRE
Un principiante ejecuta sus agentes únicamente desde su máquina local o sube sus API keys al código; un profesional despliega servicios en la nube con variables de entorno y despliegue continuo. Pon tus aplicaciones de Claude en producción con una URL pública hoy mismo.
Juan Guillermo Morales Durán
uvicorn main:app --host 0.0.0.0 --port $PORT
Jhon Alexander Mosquera Vanegas
Un análisis que solo corre en el computador de quien lo hizo no le sirve a nadie más en la organización, y por eso el curso cierra con una URL pública donde conviven el chatbot, el extractor de JSON y el agente con tools. La clase despliega con variables de entorno seguras para conectar con Anthropic. Para un economista en LATAM que quiere que su equipo use una herramienta sin instalar nada, mi lectura es que desplegar hace parte del trabajo analítico y no es un trámite técnico que llega después.
Stiven Cuesta Mena
Un asistente local, con inteligecia local Ollama
Railway is built for cloud models like Claude rather than local runtimes like Ollama, since hosting heavy local weights requires specialized hardware.
Are you looking to deploy this FastAPI project to Railway using your Anthropic API key, or were you thinking of adapting it for local models?