Resumen
httpService
httpService nos permite hacer peticiones HTTP (get, post, put, delete, …). Esta libreria se basa en Axios (axios es una libreria de javascript para hacer peticiones http).
Uso de http
Para usar httpService debemos hacer 2 cosas
- Declarar el modulo HttpModule dentro del modulo que usar el servicio
import { HttpModule } from '@nestjs/common'; // 👈 imports
...
@Module({
imports: [HttpModule, ...], // 👈
})
- Inyectar el servicio en los providers del modulo que usara el servicio
import { HttpService } from '@nestjs/common'; // 👈 imports
...
@Injectable()
export class NameClass{
constructor(private httpService: HttpService) {} // 👈 inyeccion
...
}
// Listo, ahora podremos usar el modulo
nameOfFunction(): Observable<AxiosResponse<EntitiName[]>> {
return this.httpService.get('url');
}
Introducción
Use factory permite crear valores dinámicamente. El valor real del provider ( sean valores, objetos, clases) será proporcionado por lo que se devuelva en una función fabricadora, aun si el valor se obtenga de forma asíncrona. La función fabricadora puede recibir parámetros.
Creacion del provider
// src/app.module.ts
import { Module, HttpModule, HttpService } from '@nestjs/common'; // 👈 imports
@Module({
imports: [HttpModule, UsersModule, ProductsModule],
controllers: [AppController],
providers: [
imports: [HttpModule, UsersModule, ProductsModule], // 👈 Se vuelven a importar los modul
...,
{
provide: 'TASKS',
useFactory: async (http: HttpService) => { // 👈 implement useFactory
const tasks = await http
.get('https://jsonplaceholder.typicode.com/todos')
.toPromise();
return tasks.data;
},
inject: [HttpService], // Se inyecta los servicios que usara la funcion fabricadora
},
],
})
export class AppModule {}
Uso del provider
// src/app.service.ts
import { Injectable, Inject } from '@nestjs/common';
@Injectable()
export class AppService {
constructor(
@Inject('API_KEY') private apiKey: string,
@Inject('TASKS') private tasks: any[], // 👈 inject TASKS
) {}
getHello(): string {
console.log(this.tasks); // 👈 print TASKS
return `Hello World! ${this.apiKey}`;
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.