본문 바로가기

Backend/NestJS

다른 api 호출해오는법 (feat. httpService)

내가 작성한 api가 다른 곳에서 작성된 api를 필요로 할 때가 있다. 

그때 바로 사용할 수 있는 것이 httpService이다. 

 

import { HttpService } from 'nestjs/axios';

nestjs의 axios 라이브러리에 HttpService가 존재한다. 

 

이를 사용하기 위해서는 constructor에 아래와 같이 주입을 해주어야 한다

private readonly httpService: HttpService,

 

대체적으로, 이런 형태를 띈다. 

const 변수명 = await firstValueFrom(this.httpService.get(`${this.configService.get('url의 제일 루트 디렉토리 경로')}/해당 url의 디렉토리 경로/api 이름`));

firstValueFrom은 RxJS의 Observable을 Promise로 변환하는 함수이다. 옵저버블의 첫번째 값을 기다리고, 해당 값이 발생하면 해당 값을 반환하는 Promise를 생성한다.

 

Observable의 경우 명시적으로 구독하기 전까지는 실행되지 않지만, Promise는 객체로 생성할때 바로 실행된다. 

그리고 Observer은 Observable이 방출한 데이터를 받아보는 '구독자' 역할이다. 

 

observable에 관련해서는 나중에 더 자세히 포스팅하기로!