Crear una aplicación web básica
TUTORIAL
Módulo 5: agregar interactividad a la aplicación web
En este módulo, modificará el sitio web estático para invocar la API y mostrar el texto personalizado.
Información general
En este módulo, actualizaremos el sitio web estático que creamos en el módulo uno para invocar la API de REST que creamos en el módulo tres. Esto agregará la capacidad de mostrar el texto basado en lo que ingresó.
Qué logrará
- Llamar a una API de API Gateway desde una página HTML
- Cargar una nueva versión de una aplicación web en la consola de Amplify
Conceptos clave
Implementar un sitio web: hacer que un sitio web esté disponible para los usuarios.
Entorno: una etapa como “prod”, “dev” o “staging” donde se puede ejecutar una aplicación o sitio web.
Invocar una API: enviar un evento a una API para desencadenar un comportamiento específico.
Tiempo mínimo de realización
5 minutos
Servicios utilizados
Última actualización
Implementación
-
Actualizar una aplicación web con la consola de Amplify
- Abra el archivo index.html que creó en el módulo uno.
- Reemplace el código existente por lo siguiente:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Hello World</title> <!-- Add some CSS to change client UI --> <style> body { background-color: #232F3E; } label, button { color: #FF9900; font-family: Arial, Helvetica, sans-serif; font-size: 20px; margin-left: 40px; } input { color: #232F3E; font-family: Arial, Helvetica, sans-serif; font-size: 20px; margin-left: 20px; } </style> <script> // define the callAPI function that takes a first name and last name as parameters var callAPI = (firstName,lastName)=>{ // instantiate a headers object var myHeaders = new Headers(); // add content type header to object myHeaders.append("Content-Type", "application/json"); // using built in JSON utility package turn object to string and store in a variable var raw = JSON.stringify({"firstName":firstName,"lastName":lastName}); // create a JSON object with parameters for API call and store in a variable var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; // make API call with parameters and use promises to get response fetch("YOUR-API-INVOKE-URL", requestOptions) .then(response => response.text()) .then(result => alert(JSON.parse(result).body)) .catch(error => console.log('error', error)); } </script> </head> <body> <form> <label>First Name :</label> <input type="text" id="fName"> <label>Last Name :</label> <input type="text" id="lName"> <!-- set button onClick method to call function we defined passing input values as parameters --> <button type="button" onclick="callAPI(document.getElementById('fName').value,document.getElementById('lName').value)">Call API</button> </form> </body> </html>
3. Asegúrese de agregar su URL de invocación de API en la línea 41 (desde el módulo tres). Nota: Si no tiene la URL de su API, para obtenerla en la consola de API Gateway, seleccione la API y luego elija etapas.
4. Guarde el archivo.
5. Comprima en ZIP únicamente el archivo HTML.
6. Abra la consola de Amplify.
7. Elija la aplicación web que creó en el módulo uno.
8. Elija el botón blanco Elegir archivos.
9. Seleccione el archivo ZIP que creó en el paso 5.
10. Cuando se carga el archivo, automáticamente comienza un proceso de implementación. Una vez que vea una barra verde, la implementación se habrá completado.
- Abra el archivo index.html que creó en el módulo uno.
-
Probar la aplicación web actualizada
- Elija la URL en Dominio.
- La aplicación web actualizada debería cargarse en el navegador.
- Escriba su nombre (o lo que prefiera) y elija el botón Llamar a la API.
- Debería ver un mensaje que comienza con Hola desde Lambda seguido del texto que escribió.
¡Enhorabuena! Ahora tiene una aplicación web en funcionamiento implementada por la consola de Amplify que puede llamar a una función de Lambda a través de API Gateway.
Arquitectura de aplicaciones
Con todos los módulos completados, esta es la arquitectura de lo que creó:
Todos los servicios de AWS que configuramos pueden comunicarse de forma segura entre sí. Cuando un usuario elige un botón en la aplicación web, realiza una llamada a nuestra API, que activa la función de Lambda. Esta función de Lambda escribe en una base de datos y devuelve un mensaje a nuestro cliente a través de API Gateway. IAM administra todos los permisos.
¡Enhorabuena!
Creó con éxito una aplicación web en AWS. En el siguiente módulo, limpiaremos los recursos utilizados en este tutorial para que no incurra en cargos no deseados en su cuenta.