¿Cómo conectar nuestra aplicación con una API en Svelte?
Conectar una aplicación a una API es un paso fundamental para cualquier desarrollador web. Aquí abordaremos el proceso desde la perspectiva de Svelte, utilizando funciones asíncronas y el ciclo de vida de componentes para obtener y manipular datos. Svelte es un excelente framework que facilita la integración de APIs, gracias a su manejo eficiente del ciclo de vida y funciones reactivas.
¿Cómo utilizar el ciclo de vida de Svelte para llamar a una API?
El ciclo de vida de un componente en Svelte es crucial para gestionar peticiones a una API. Debemos importar onMount desde Svelte, que es la función que permite ejecutar código una vez que el componente ha sido insertado en el DOM. Este es el momento ideal para realizar peticiones asincrónicas.
import{ onMount }from'svelte';let data ={};onMount(async()=>{constAPI='https://us-central1-pubstagram-co.cloudfunctions.net/dara';const response =awaitfetch(API); data =await response.json();});
¿Cómo administrar el flujo de datos entre componentes?
Una vez que los datos han sido obtenidos de la API, es esencial transferirlos adecuadamente entre los distintos componentes de la aplicación. Dos métodos habituales son:
Usar props: Pasando datos a los componentes hijos como propiedades.
Destructuración: Dividiendo datos en subcomponentes específicos para su manipulación clara y concisa.
¿Cómo actualizar nuestros componentes para representar los datos de la API?
El siguiente paso, tras obtener y almacenar los datos de la API, es diseñar nuestros componentes para reflejar la información precisa en el DOM. Svelte permite que los valores se pasen a los componentes hijos de manera eficiente a través de export let.
exportlet nickname;exportlet name;
¿Cuál es la mejor manera de estructurar el componente Timeline con datos de la API?
La estructura del componente Timeline aprovecha las directivas de control de flujo de Svelte, permitiendo iterar eficientemente en las publicaciones obtenidas de la API mediante el uso de each.
{#each posts as post}
<Card{...post}/>{:else}
<p>Loading...</p>{/each}
Practicar implementando un componente de carga
Crear un componente de carga personalizado puede mejorar significativamente la experiencia del usuario, mostrando algo informativo o atractivo mientras se cargan los datos:
<p>Loading...</p>
¿Cómo integrar el componente Card?
Finalmente, Card es donde los detalles de cada publicación se muestran. Aquí deberás asegurarte de que todos los elementos renderizan correctamente los datos recibidos de la API.
Verifica URLs: Asegúrate siempre de que las URLs de las APIs estén correctas y funcionando para evitar errores en la integridad de los datos.
Uso del Network tab: Utiliza las herramientas del navegador para inspeccionar cómo se reciben los datos.
Revisión continua: Asegúrate de mantener la semántica y la indentación del código para mejorar la legibilidad y el mantenimiento.
Este proceso no solo construye una conexión robusta con la API, sino que también enfatiza las mejores prácticas al manipular datos dentro de los diferentes componentes de Svelte. Estás bien encaminado hacia la integración de servicios externos de manera eficiente y profesional en tus proyectos web. ¡Sigue explorando y aprendiendo!
Hola @Diego-Rojas4304, lo aprendí con los cursos de Node.js de aquí en Platzi, uno que actualmente ya no está vigente. También puedes aprender tomando el Curso de Backend con Node.js
Si desean observar los datos de la API de una manera mucho mas organizada y colorida sin tener que abrir la consola o postman les recomiendo que agreguen esta extensión a Chrome.
Hola a todos bueno yo hice un API muy rápida no hace mucho pero si lo que quería jejeje
el chiste de esto es pasar los parámetros de nickname y name espero y les sirva a mi me gusto mucho jejejje
Lo usas en el rollup.config.js:
// esto al principio
import json from '@rollup/plugin-json'
// y añades es dentro del array de plugins:
plugins: [
json({
compact: true
}),
Y con eso podrías ser capaz de importar directamente un archivo json en tus ficheros así:
import json from './archivo.json'
No hay una manera como un estado para no tener que pasar props de hijo en hijo?
No me gustó esta parte porque la API ya no está disponible, y no es posible continuar con el ejercicio
Los límites son imaginarios, puedes adaptar este código para funcionar con cualquier API ahí afuera, útiliza YouTube API, HackerNews API o incluso Pokemon API
Me confunde un poco porque para traer elementos hay que exportarlos...
¿Que curso me enseñan hacer una api publica, como la que hizo el profesor?
Con todo respeto, el curso debe ser funcional, no es posible que no tenga la API, hay muchos principiantes que simplemente abortan el curso por esto. No es primera vez que pasa.
Hola, al seguir el curso llegúé al punto de la Api , y el enlace ya no sirve, me podria alguien decir , donde se encuentra ahora , gracias : , da error
Error: Page not found
The requested URL was not found on this server.
Estoy haciendo el curso, pero tengo un problema, el onMount no se esta ejecutando, que puede estar ocurriendo?
Hola creé una carpeta para guardar iconos e imagenes, pero a la hora de llamar la carpeta y la imagen especifica no me reenderiza en el navegador, que puedo hacer??
Hola!
Lo más probable es que sea un problema de URL relativas y absolutas. No es lo mismo poner en el código "../../files/image.jpg" (esto es una ruta relativa) que poner "home/proyecto/files/image.jpg" (esto es una ruta absoluta). ¿Cuál estás usando?
Te recomiendo que revises esto hasta encontrar la ruta correcta para que tu app localice el recurso.
Saludos!
Intenté de las 2 formas pero sigo con el mismo error, no logra encontrar el archivo, la carpeta "img" se encuentra dentro de la carpeta "src"
Actualizen el API por favor
onMount se activa después de que los componentes se cuelgan en el DOM y se llama durante la inicialización de los componentes. Si onMount devuelve una función, esta función se activará cuando se descargue el componente.