En esta página:
Github
Para integrar la librería Axios con el framework Angular.
Debes seguir ciertos pasos para que todo salga bien.
En este tutorial te enseñaré a Cómo Usar Axios y Angular, vamos con ello.
Integración de Axios y Angular
Sigue los siguientes pasos para que todo salga bien:
Creación de proyecto
Para crear un nuevo proyecto en Angular, usaremos la Angular CLI.
Ejecutamos el siguiente comando para crear el proyecto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
ng new miapp --standalone=false CREATE miapp/angular.json (2682 bytes) CREATE miapp/package.json (1074 bytes) CREATE miapp/README.md (1093 bytes) CREATE miapp/tsconfig.json (892 bytes) CREATE miapp/.editorconfig (290 bytes) CREATE miapp/.gitignore (629 bytes) CREATE miapp/tsconfig.app.json (277 bytes) CREATE miapp/tsconfig.spec.json (287 bytes) CREATE miapp/.vscode/extensions.json (134 bytes) CREATE miapp/.vscode/launch.json (490 bytes) CREATE miapp/.vscode/tasks.json (980 bytes) CREATE miapp/src/main.ts (256 bytes) CREATE miapp/src/index.html (304 bytes) CREATE miapp/src/styles.css (81 bytes) CREATE miapp/src/app/app.component.html (20239 bytes) CREATE miapp/src/app/app.component.spec.ts (942 bytes) CREATE miapp/src/app/app.component.ts (314 bytes) CREATE miapp/src/app/app.component.css (0 bytes) CREATE miapp/src/app/app.config.ts (318 bytes) CREATE miapp/src/app/app.routes.ts (80 bytes) CREATE miapp/public/favicon.ico (15086 bytes) - Installing packages (npm)... ... ... (Continua la creación del proyecto) ... ... CREATE miapp/src/app/app.component.spec.ts (942 bytes) CREATE miapp/src/app/app.component.ts (314 bytes) CREATE miapp/src/app/app.component.css (0 bytes) CREATE miapp/src/app/app.config.ts (318 bytes) CREATE miapp/src/app/app.routes.ts (80 bytes) CREATE miapp/public/favicon.ico (15086 bytes) - Installing packages (npm)... √ Packages installed successfully. Successfully initialized git. |
Instalación de Axios
Ingresamos al directorio del proyecto.
Instalamos la librería Axios ejecutando el siguiente comando:
1 2 3 4 5 6 7 |
# Ingresamos al directorio del proyecto cd miapp # Instalamos axios npm install axios --save |
Al comando para instalar axios le estoy pasando la opción o flag –save.
Esto lo hago para que axios se coloque en la sección dependencies del archivo package.json
Así mantenemos un orden.
Creación del servicio
Lo que haremos es consumir una API con axios mediante un endpoint o URL.
Ejecutamos el siguiente comando para crear el servicio para consumir la API con axios:
1 2 3 4 5 6 |
ng generate service leer-api CREATE src/app/leer-api.service.spec.ts (379 bytes) CREATE src/app/leer-api.service.ts (145 bytes) |
Abrimos el archivo leer-api.service.ts de nuestro servicio y agregamos lo siguiente (He colocado comentarios para explicar que hacen las líneas más importantes del código):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import { Injectable } from '@angular/core'; // Importamos Axios import axios from 'axios'; @Injectable({ providedIn: 'root' }) export class LeerApiService { constructor() { } // Función para llamar al endpoint o URL de la API llamarDatos() { return axios.get('http://localhost:8000/api/v1/postres') } } |
Configuración del componente
Abrimos el archivo app.component.ts y agregamos lo siguiente (He colocado comentarios para explicar que hacen las líneas más importantes del código):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import { Component } from '@angular/core'; // Importamos nuestro servicio import { LeerApiService } from './leer-api.service'; @Component({ selector: 'app-root', template: ` <!-- Presionamos un botón para obtener los datos de la API --> <button (click)="leerDatos()">Obtener Datos</button> <p>{{ nombre }}</p> <p>{{ precio }}</p> <p>{{ stock }}</p> ` }) export class AppComponent { // Función para pedir los datos llamando a nuestro servicio leerDatos() { this.leerApiService.llamarDatos() .then(response => { // Recibimos los datos this.datos = response.data; // Mostramos los datos obtenidos en la consola console.log(this.datos); // Accedemos al 'nombre' del primer producto this.nombre = response.data[0].nombre; // Accedemos al 'precio' del primer producto this.precio = response.data[0].precio; // Accedemos al 'stock' del primer producto this.stock = response.data[0].stock; }) .catch(function (error) { // Si hubo algun error mostramos algo console.log(error); }) .finally(function () { // Se ejecuto sin problemas }); } // Variables title = 'miapp'; datos: any; nombre: any; precio: any; stock: any; constructor(private leerApiService: LeerApiService) {} } |
Probando la integración de Axios y Angular
Ahora vamos a verificar si Axios y Angular están funcionando correctamente.
Arrancamos el servidor de Angular ejecuando el siguiente comando:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
ng serve --open Initial chunk files | Names | Raw size polyfills.js | polyfills | 90.23 kB | main.js | main | 4.50 kB | styles.css | styles | 95 bytes | | Initial total | 94.82 kB Application bundle generation complete. [1.407 seconds] Watch mode enabled. Watching for file changes... NOTE: Raw file sizes do not reflect development server per-request transformations. ➜ Local: http://localhost:4200/ ➜ press h + enter to show help |
Abrimos la ruta local http://localhost:4200/ en nuestro navegador.
Si presionamos el botón Obtener Datos, podemos ver que los datos se llaman sin problemas.
Los datos se muestran en la vista HTML y también en la consola del navegador:
Así de fácil puedes usar Axios y Angular.
Conclusión
En este tutorial has aprendido a Cómo Usar Axios con Angular.
Te da las nociones esenciales para poder usar Axios con Angular de forma adecuada.
Recuerda que con la práctica constante serás un experto en Axios y Angular.
Nota(s)
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.