Creando servicios HTTP con Fetch API
Clase 20 de 53 • Curso Profesional de Vue.js 2
Contenido del curso
CLI y Dev Tools
- 3

Instalación de Vue.js: Node, Dev Tools y CLI
06:13 min - 4

Crear una aplicación Vue con CLI y webpack
12:49 min - 5

Cómo funciona webpack.config.js
10:38 min - 6

Babel: transpilador de JavaScript moderno
05:06 min - 7

ESLint con Standard JS: linteo automático en webpack
15:34 min - 8

Configuración de Sass y Bulma en Vue
06:18 min - 9

Cómo configurar Pug en Vue con webpack
04:23 min - 10
Diseño de Mockups: Práctica y Colaboración en Comunidad
00:20 min - 11
Creación de Vistas con Mockups y Vue.js
00:32 min
Manipulación del DOM
- 12

Expresiones en Vue: sintaxis doble llave
03:49 min - 13

Diferencia entre v-show y v-if en el DOM
06:22 min - 14

Qué es data binding en Vue.js
04:11 min - 15

Computed properties en Vue.js: cómo crearlas
04:13 min - 16

Qué son los watchers de Vue
02:25 min - 17

Eventos Vue: directiva v-on y métodos format
06:12 min - 18

Cómo construir una interfaz de búsqueda completa en Vue
19:03 min - 19
Manipulación del DOM con Vue.js: Práctica y Ejercicios
03:00 min
REST y HTTP
Sistema de Componentes
- 23

Cómo crear componentes en Vue
08:46 min - 24

Componentes Layout en Vue con Bulma
09:50 min - 25

Reactividad en Vue: $set y Object.assign
06:14 min - 26

Hooks del ciclo de vida en Vue.js
05:38 min - 27

Comunicación padre-hijo con props en Vue
23:27 min - 28

Eventos en Vue: comunicar hijo a padre
12:04 min - 29

Slots: HTML dinámico en componentes Vue
13:42 min - 30

Plugin Event Bus: comunicar componentes sin relación en Vue
19:19 min
Vue Router
Extendiendo VueJS
Clases, Animaciones y Transiciones36
Vuex
- 39

Cómo Vuex centraliza estados en Vue
03:41 min - 40

Instalación de Vuex con estado único
17:32 min - 41

Cómo usar mutations y commit en Vuex
08:16 min - 42

Getters de Vuex: mapGetters y store sincronizado
07:35 min - 43

Cómo dispatch ejecuta actions asincrónicas en ViewX
07:54 min - 44

Instalación de Viewex en Platzi Music
26:37 min
Nuxt.js
Deploy a Producción con Now
Conclusiones
Bonus
Para escalar una app con confianza, es clave abandonar datos hardcodeados y pasar a peticiones HTTP reales. Aquí verás cómo estructurar servicios en Vanilla JavaScript y conectarlos con la API Fetch del browser, manteniendo a Vue.js como capa de vista y tu lógica de negocios bien separada y reutilizable.
¿Por qué usar servicios y peticiones HTTP con Fetch en Vue.js?
Trabajar con servicios permite aislar la lógica de negocios del render. Vue.js es un framework de la vista, así que el modelo y la lógica deben resolverse por fuera, idealmente en archivos dedicados y puros de JavaScript. Esto facilita integrar APIs REST como Spotify, GitHub o Facebook, además de APIs privadas internas, sin atarte a una sola tecnología.
- Separación de responsabilidades: la vista en Vue.js, la lógica en servicios.
- Reutilización: funciona en Angular, React o cualquier app web.
- Compatibilidad: la API Fetch consume HTTP de múltiples orígenes.
- Mantenibilidad: código modular, importable y testeable.
¿Qué es un servicio en este contexto?
Un servicio es un archivo con lógica de negocios que provee información a las vistas. Se diseña para ser consumido por la capa de presentación, sin mezclar render con datos.
- Archivos con funciones y reglas de negocio.
- Proveedor de datos para view models.
- Los view models llevan la información al HTML.
- Patrón simple y genérico para múltiples proyectos.
¿Cómo organizar el proyecto: carpeta Services y nomenclatura de archivos?
Dentro de Source, crea una carpeta llamada Services para centralizar la lógica. Allí vas a añadir dos archivos iniciales: config.js y plazi-music.js. La nomenclatura sigue la sintaxis Kivab: palabras en minúsculas separadas por guiones. Para componentes, usa Pascal Case.
- Carpeta: Source/Services.
- Archivos: config.js y plazi-music.js.
- Nombres en Kivab: guiones y minúsculas.
- Componentes en Pascal Case: cada palabra con mayúscula.
Source/
Services/
config.js
plazi-music.js
Esta estructura mantiene el código modular y facilita su importación desde donde lo necesites.
¿Qué contiene config.js y cómo exportarlo con ES Modules?
El archivo config.js actúa como storage de parámetros de configuración. Crea un objeto llamado configService con la propiedad apiUrl, apuntando a la URL de la API: http://plazimusic.now.sh. Luego, expórtalo con export default para poder importarlo cuando haga falta. Esto se apoya en ES Modules de ECMAScript 2015.
// Source/Services/config.js
const configService = {
apiUrl: 'http://plazimusic.now.sh'
};
export default configService;
configService: almacén de configuración.apiUrl: base para consumir contenido de canciones y artistas.export default: facilita importar el servicio donde se necesite.- ES Modules: separa código en archivos y mejora la organización.
¿Cómo se integrará luego con Plazzi Music y Fetch?
El siguiente paso es crear el servicio plazi-music.js y usar Fetch para consumir la API definida en apiUrl. Así podrás trabajar con canciones, artistas y más sin datos ficticios.
- Servicio Plazzi Music: envoltorio para peticiones HTTP.
- Consumo con Fetch: solicitudes limpias y nativas del browser.
- Datos listos para los view models y el HTML.
- Base para integrar cualquier API REST en el proyecto.
¿Con qué API te gustaría practicar primero y qué endpoints te interesan? Comparte tus dudas y avances para seguir iterando juntos.