Nest.js

Nest.js - ํ™ˆํ…์Šค ์ข…ํ•ฉ์†Œ๋“์„ธ API ํŒŒ์‹ฑ

martinooo 2023. 5. 15. 16:38

๐Ÿคณ ํ”„๋กœ์ ํŠธ?


ํ™ˆํƒ์Šค ์ข…ํ•ฉ์†Œ๋“์„ธ API๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ข…ํ•ฉ์†Œ๋“์„ธ ๊ด€๋ จ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋ถ€ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ํ•œ๋ฒˆ ํ˜ธ์ถœํ•  ๋•Œ 300์› ๋น„์šฉ์ด ๋“ค๋ฉฐ ์นด์นด์˜ค, ๋„ค์ด๋ฒ„, pass ๋“ฑ๋“ฑ ์—์„œ ์ธ์ฆ์„œ ์ธ์ฆ๋งŒ ํ•˜๋ฉด ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ข…ํ•ฉ์†Œ๋“์„ธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐ€๊ณต์„ํ•ด์„œ ์œ ์˜๋ฏธํ•œ ๋ฐ์ดํ„ฐ๋กœ ํ™œ์šฉ 

 


๐Ÿคณ Nest.js ์™ธ๋ถ€ API ํ†ต์‹  ๋ฐฉ์‹์€?


npm ์„ค์น˜

npm i --save @nestjs/axios axios
  • Axios๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ์˜ http ํด๋ผ์ด์–ธํŠธ ํŒจํ‚ค์ง€ ์ด๋ฉฐ nest.js๋Š” axios๋ฅผ ๋ž˜ํ•‘ํ•˜๊ณ  ๋‚ด์žฅ๋œ httpModule ๋ฉ”์†Œ๋“œ๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค. 
  •  

module import

import { HttpService } from '@nestjs/axios';

 

 

  • httpService module ์ดˆ๊ธฐ ๊ฐ’์„ ์…‹ํŒ… ํ•ด์ค˜์„œ getInfo method์—์„œ ์™ธ๋ถ€ api์™€ ํ†ต์‹  ํ• ์ˆ˜ ์žˆ๋‹ค. 
  • lastValueFrom ํ•จ๊ป˜ ์‚ฌ์šฉ ํ–ˆ๋‹ค. 
  • lastValueFrom ์ด๋ž€? 
lastValueFrom JavaScript ๋ฐ TypeScript์˜ ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ์ธ๊ธฐ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ RxJS์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜ ์ด๋ฉฐ
lastValueFrom Observable์„ Promise๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‚ด๋ณด๋‚ธ ๊ฐ’์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ด๋Š” HTTP ์š”์ฒญ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ์˜ ๋น„๋™๊ธฐ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ž‘์—…ํ•  ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 


 

์œ„์— ๋กœ์ง์œผ๋กœ API ํ†ต์‹ ์— ์„ฑ๊ณตํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ์‘๋‹ต๊ฐ™์ด ์˜จ๋‹ค. ์ด์ œ ์ € ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•ด์„œ ์œ ์˜๋ฏธํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ํ™œ์šฉํ•  ๊ณ„ํš์ด๋‹ค.