Server/NodeJS

[NodeJS] KAKAO BOOK OPEN API 사용하는 법

백엔드 규니 2020. 8. 14. 13:50
728x90
반응형

이번 글에서는 NodeJS를 이용해서 KAKAO OPEN 책 검색 API를 요청해보는 예제를 진행해보려 한다.

(REST API 키는 발급받았다는 가정하에 글을 쓰도록 하겠다.)

https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

위의 사이트에 들어가서 "책 검색" 부분을 찾아보자.

 

그러면 위와 같이 설명이 되어 있는 부분을 찾을 수 있을 것이다. 어떻게 호출을 해야 하는 것인지에 대해서 간략하게 살펴보자.

먼저 Parameter를 보면 query는 필수로 보내줘야 한다는 것을 알 수 있다. 그리고 GET 방식으로 요청을 해야 하며, 요청 URL 등을 확인할 수 있다. 이렇게만 말하면 감이 잘 오지 않기 때문에 NodeJS 코드를 보면서 확인해보자.

 

 

1. express & express-gengerator 설치하기

npm install -g express express-generator
express 프로젝트이름 

 

2. 모듈 설치

npm install
npm install request

 

여기서 주의깊게 봐야할 것은 request 모듈이다.  request 모듈은 아래의 블로그에서 확인하자!

https://senticoding.tistory.com/38

 

nodejs request 모듈 기본 및 pipe 메소드에 대해

항상 nodejs에서 모듈들을 사용하다 보면 (초보입장에서는) var request=require('request'); 과연 require('request')가 리턴하는 녀석은 무엇일까 request()가 리턴하는 녀석은 무엇일까 등등 이러한 고민에 빠..

senticoding.tistory.com

간략하게 현재 사용할 부분에 대해서만 request 모듈을 NodeJS 코드와 함께 이해해보자.

const express = require('express');
const router = express.Router();
const request = require('request');


let kakaoOptions = {
  url: 'https://dapi.kakao.com/v3/search/book?target=title',  // target에 해당하는 것을 적기
  method: 'GET',
  headers: {
    'Authorization': 'KakaoAK (REST API KEY)'
  },
  qs: {
    query : '미움받을용기'     // 현재 책으로 검색할 것이라 책 제목을 적었다.
  },
  encoding: 'UTF-8',
}

request(kakaoOptions, function (err, res, body) {
  if (!err && res.statusCode == 200) {
    console.log(JSON.parse(body));
  }  
})

module.exports = router;

위의 코드가 동작하는 원리에 대해서 설명하자면, 먼저 kakaoOptions에 요청할 URL을 적어주고(책 제목으로 검색할 예정이기 때문에 target=title 이라고 하였다), headers 안에는 KAKAO Develop 홈폐이지에서 발급받은 REST API 키 값을 적어주면 된다. 

 

request 자체가 함수로서 호출되면 인자로 받은 URL에 http request를 보내게 되고, response가 callback의 두 번째 인자로 전달되어 서버의 반응 중 body 역할을 하는 string에 세 번째 인자로 전달된다. 

 

따라서 위의 코드를 실행하면 console 값에 아래와 같이 결과 값이 출력된다. (일부분만 캡쳐한 것이다)

 

POSTMAN 

위와 같이 포스트맨으로 request 요청을 하여도 결과가 잘 나오는 것을 확인할 수 있다.

반응형