Publicación y Configuración de Aplicaciones en Servidores Públicos
Resumen
¿Cómo configurar un servidor público para tu aplicación?
Para que tu aplicación pueda ser accedida por cualquier persona en línea, es esencial publicarla en un servidor público. Si bien el desarrollo inicial lo realizamos en un servidor local, es crucial hacerlo en un entorno que permita el acceso de otros usuarios. En este proceso, vamos a utilizar el servidor Now.sh, una herramienta que facilita el despliegue de aplicaciones. Si no estás familiarizado con esta plataforma, te recomiendo tomar un curso introductorio para optimizar su uso.
¿Cómo se configura la ruta en PHP?
Para estructurar correctamente las rutas en PHP, replicamos la configuración previa, utilizando las siguientes líneas de código:
// Configuración de la ruta por defecto$default_route='index.html';// Expresiones regulares para acceder a recursos// Si el recurso es desconocido, devuelve un código 404functionhandleUnknownResource($requestedResource){if(isUnknown($requestedResource)){http_response_code(404);echo"Recurso desconocido";}}
Este procedimiento garantiza que cuando un recurso no es encontrado, el servidor devuelve un código 404, indicando una URL incorrecta.
¿Cómo se realiza el despliegue?
El despliegue de la aplicación en un servidor público implica ciertos pasos técnicos. Desde la configuración de rutas hasta la compilación de archivos, cada parte del proceso es vital para el correcto funcionamiento de la aplicación.
Paso a paso del despliegue
Configuración básica: Antes de desplegar, presta atención a cómo trata el servidor los archivos .php y .html.
Compilación y conexión al servidor: Utiliza Now.sh para realizar la compilación necesaria. El proceso te indicará la URL final donde estará hospedada la aplicación.
Prueba de la URL: Copia la URL generada y ábrela en tu navegador para verificar que la aplicación funciona correctamente.
Problema común: URLs cambiantes
Una consideración importante es la forma en que se gestionan las URLs, ya que estas pueden cambiar constantemente. Es necesario construirlas mediante código:
// Construcción dinámica de la URLlet originalUrl =window.location.href;let indexPath = originalUrl.lastIndexOf('/');let baseApiUrl = originalUrl.substring(0, indexPath)+"/resources";// Utilización de la URL construida para llamadas Ajax
De esta manera, aseguras que la aplicación pueda referenciar correctamente a sus propios recursos sin importar el dominio final en el que se encuentre.
¿Cómo garantizar un acceso efectivo a la aplicación?
Llegado este punto, es crucial que la aplicación esté optimizada para que cualquier usuario pueda accederla. Esto implica no solo asegurar que los recursos estén disponibles, sino también que el control de accesos sea efectivo.
Claves para un control de acceso efectivo
Autenticación y autorización: Implementa un sistema robusto de autenticación para asegurar que sólo los usuarios autorizados accedan a determinadas partes de la aplicación.
Secuencia de comandos de seguridad: Protege el servidor y la base de datos de ataques comunes como inyecciones SQL o cross-site scripting (XSS).
Monitoreo continuo: Mantén un monitoreo constante del tráfico y las posibles vulnerabilidades para reaccionar rápidamente ante cualquier inconveniente.
Con este conocimiento, ¡ya estás listo para diseñar y desplegar una API que todos querrán usar! No olvides seguir mejorando y actualizando tus habilidades. La tecnología siempre está en constante avance.
Proyecto final:
Les quiero compartir como ha quedado mi proyecto final. Hecho completamente con Javascript. NodeJS del lado del backend y JavaScript vanilla del frontend. Sin JQuery.
URL del deploy:
Les dejo el URL de mi APP en Heroku. Pueden poner y eliminar los datos que gusten. Tengan en cuenta que es totalmente público, así que lo que escriban o los otros escriban es visible para todo el mundo. No me hago responsable jajaja
Experimenten sin miedo
https://api-rest-platzi.herokuapp.com/URL de mi repo:
Les dejo el URL de mi repo para que puedan clonarlo en local y hacer sus propios experimentos, o ver como está hecho del lado del backend y frontend
https://github.com/Lucneonct/ApiRestPlatzi
De verdad fue muy entretenido seguir este curso en otros lenguajes, me encantó.
Muy bueno, la verdad con el vanilla js actual ya no se necesita tanto jquery
Me perdí con las versiones y los archivos en la sección de AJAX por lo diferentes cambios que se realizaron a los archivos y que no quedaron documentadas o en e video! :(
Si estan en el video no. 15 las encuentras, saludos :)
Que espectacular, no conocía NOW para el deployment :O
Esto de now.sh me ha parecido espectacular, siempre me pregunte como podía yo hacer un deployment de una aplicación front, así que muchas gracias!
X2, en 3 minutos de videos aprendimos algo nuevo.
Now es un servicio para hacer deployment de aplicaciones, aunque no es el único, igual podrías hacer el deploy con un servidor que manejes en algun Cloud, etc. Now lo hace más fácil:D!
Ahora se utiliza Vercel, instalarlo npm i -g vercel, en los builds colocar
No entiendo por que la url puede cambiar constantemente y qué fue lo que modificó? Mando imagen de la linea que no entiendo
Con cambiar constantemente se refiere a que se va a utilizar la URL de tu dominio (en este caso se usa el que proporcionó Now)
Lo que hace la línea de código 76 es obtener la URL de la pestaña y agregarle el parametro books al final.
Puedes reemplazar dicha URL por una estática también.
Se refiere a que tu url puede cambiar dependiendo del servidor donde montes tu API, tendría que estar ajustando tu código cada vez que cambies de servidor o incluso cambie el dominio, con esa linera obtienes la url actual, puedes abrir las devtools de tu navegador y en la pestaña console ejecutar esa linea para que te sea mas claro
Esta es una opción hecha con un backend en python (flask) y el frontend con jquery y materialize.css, les dejo mi repo por si lo quieren checar: https://github.com/cristian-rincon/api-rest
En el documento now.json
{"src":"*.php","use":"@now/php"},
La cambiamos por:
{"src":"*.php","use":"now-php"},
La anterior es una librería que ya no se usa o mas bien esa fue movida a now-php
No entendi ¿por que se tenia que cambiar el router, por el now.json?
Un curso bastante básico, pero como teoría normal
Super, ya tenemos todo para hacer nuestras APIs
Excelente!!!!!
Super Muchas gracias Mauro :)
Wow...miren ese manejo de window.location.href...quedé :o
Increíble la parte de la url relativa, ilumino mi mente :)