[NodeJS] KAKAO BOOK OPEN API 사용하는 법
이번 글에서는 NodeJS를 이용해서 KAKAO OPEN 책 검색 API를 요청해보는 예제를 진행해보려 한다.
(REST API 키는 발급받았다는 가정하에 글을 쓰도록 하겠다.)
https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide
위의 사이트에 들어가서 "책 검색" 부분을 찾아보자.
그러면 위와 같이 설명이 되어 있는 부분을 찾을 수 있을 것이다. 어떻게 호출을 해야 하는 것인지에 대해서 간략하게 살펴보자.
먼저 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
간략하게 현재 사용할 부분에 대해서만 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 요청을 하여도 결과가 잘 나오는 것을 확인할 수 있다.