NestJS에서 got을 편하게 쓸 수 있는 smile-nestjs-got을 만들었습니다

1 week ago 18

안녕하세요 NestJS를 사용하는 백엔드 개발자 여러분 NestJS에서 외부 API를 호출할 때 대부분 공식 모듈인 @nestjs/axios를 많이 사용하실 겁니다 하지만 got을 한번이라도 써보셨던 개발자라면 got이 그리워질 때가 있습니다 @nestjs/axios와 동일한 개발 경험을 제공하면서 got의 강력한 기능을 온전히 활용할 수 있는 smile-nestjs-got을 개발하였습니다 CommonJS / ESM 호환: 내부적으로 Dynamic import()를 활용하고 CJS로 빌드되어, 프로젝트가 CJS든 ESM이든 별도 설정 없이 동작합니다 @nestjs/axios와의 호환성: @nestjs/axios의 HttpModule, HttpService 인터페이스를 그대로 차용했으며, response.data, response.status 등의 alias를 제공해 기존 코드의 변경 비용을 최소화했습니다 RxJS Observable 지원: 요청 취소 시 내부적으로 AbortController와 연동되어 Observable 구독 해제 시 네트워크 요청도 안전하게 abort됩니다 got의 고유 기능 노출 : 내장 retry, pagination, 스트리밍 모두 사용가능합니다 nodejs >= 20.19 환경에서 got v14, v15, v16을 지원합니다 간단 예제 설치 npm i smile-nestjs-got got # or pnpm add smile-nestjs-got got 모듈등록 import { Module } from '@nestjs/common'; import { HttpModule } from 'smile-nestjs-got'; @Module({ imports: [ HttpModule.register({ prefixUrl: 'https://api.example.com', headers: { 'user-agent': 'my-nest-app' }, }), ], }) export class AppModule {} 호출 import { Injectable } from '@nestjs/common'; import { firstValueFrom } from 'rxjs'; import { HttpService } from 'smile-nestjs-got'; @Injectable() export class UserService { constructor(private readonly http: HttpServi...

Read Entire Article