bskyvision RSS 태그 관리 글쓰기 방명록
2021-03-18 11:39:29
728x90

오늘은 카카오 책 검색 API를 이용해서 도서 검색 웹 페이지를 구현해보겠습니다. 저는 책 제목을 검색하면, 정확도순으로 10개의 검색결과가 출력되고, 스크롤을 내려서 문서의 끝에 다다르면 추가로 10개의 검색결과가 하단에 붙는 그런 형식의 웹 페이지를 만들어 보겠습니다. 전체 코드는 다음과 같습니다. 핵심 코드만 보여드리기 위해서 CSS를 이용해서 웹페이지를 꾸미지는 않았습니다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!DOCTYPE html>
<html lang="ko">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>책 검색 사이트</title>
</head>
 
<body>
 
    <input type="text" id="query">
    <button id="search">검색</button>
 
    <div></div>
 
    <script src="https://code.jquery.com/jquery-3.6.0.js"
        integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
 
    <script>
        $(document).ready(function () {
            var pageNum = 1;
 
            $("#search").click(function () {
                $("div").html("");
 
                $.ajax({
                    method: "GET",
                    url: "https://dapi.kakao.com/v3/search/book?target=title",
                    data: { query: $("#query").val(), page: pageNum},
                    headers: {Authorization: "KakaoAK ########"// ########부분에 본인의 REST API 키를 넣어주세요.
 
                })
                .done(function (msg) {
                    console.log(msg);
                    for (var i = 0; i < 10; i++){
                        $("div").append("<h2><a href='"+ msg.documents[i].url +"'>" + msg.documents[i].title + "</a></h2>");
                        $("div").append("<strong>저자:</strong> " + msg.documents[i].authors + "<br>");
                        $("div").append("<strong>출판사:</strong> " + msg.documents[i].publisher + "<br>");
                        $("div").append("<strong>요약:</strong> " + msg.documents[i].contents + "...<br>");
                        $("div").append("<img src='" + msg.documents[i].thumbnail + "'/><br>");
                    }
                });
            })
 
            $(window).scroll(function(){  
 
                if ( Math.ceil($(window).scrollTop()) + $(window).height() >= $(document).height() ){
                    pageNum++;
 
 
                    $.ajax({
                        method: "GET",
                        url: "https://dapi.kakao.com/v3/search/book?target=title",
                        data: { query: $("#query").val(),  page: pageNum},
                        headers: {Authorization: "KakaoAK ########"// ########부분에 본인의 REST API 키를 넣어주세요.
 
                    })
                    .done(function (msg) {
                        console.log(msg);
                        for (var i = 0; i < 10; i++){
                            $("div").append("<h2><a href='"+ msg.documents[i].url +"'>" + msg.documents[i].title + "</a></h2>");
                            $("div").append("<strong>저자:</strong> " + msg.documents[i].authors + "<br>");
                            $("div").append("<strong>출판사:</strong> " + msg.documents[i].publisher + "<br>");
                            $("div").append("<strong>요약:</strong> " + msg.documents[i].contents + "...<br>");
                            $("div").append("<img src='" + msg.documents[i].thumbnail + "'/><br>");
                        }
                    });
 
                }
                
            });
        })
 
        
    </script>
</body>
 
</html>
cs

 

위 코드를 그대로 복사해서 붙여넣으시면 실행이 제대로 안 될 것입니다. 실행이 되게 하려면 REST API KEY가 필요합니다. 카카오 앱 키의 REST API KEY를 얻는 방법은 다음과 같습니다.  

 

developers.kakao.com/에 들어가셔서 로그인하신 후에 [내 애플리케이션]을 클릭합니다.

 

 

그 다음에 [애플리케이션 추가하기]를 누르신 후, 앱 이름과 사업자명에 각각 테스트라고 기입합니다. 다른 이름을 기입하셔도 좋습니다. 

 

저장을 클릭하시고 생성된 테스트라는 앱을 클릭하시면 다음과 같은 화면이 뜰 것입니다. 

 

 

이 중에서 REST API 키를 복사하셔서 위 코드에서 ######## 부분을 대체해줍니다. 주석이 딸려 있는 두 군데를 바꿔주셔야 합니다. 그 다음에 웹페이지를 열어보면, 우리가 만든 책 검색 웹페이지가 제대로 작동할 것입니다. 

 

 

보시는 것처럼 스크롤이 문서의 끝에 도달하면, 추가되는 것을 확인하실 수 있습니다. 그리고 다시 검색을 하면, 이전 기록이 지워지고 새로운 검색 결과가 보여집니다. 

 

참고자료

[1] www.youtube.com/watch?v=QPEUU89AOg8&t=34s, 조코딩, "[JavaScript 기초와 활용 #2] API의 개념과 활용! 카카오 책 검색 기능 구현하기" 

[2] api.jquery.com/jquery.ajax/, jquery, "jquery.ajax()"

 

댓글

방문해주신 모든 분들을 환영합니다.

* 글을 읽던 중에 궁금했던 부분은 질문해주세요.

* 칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.

* 최대한 답변 드리도록 노력하겠습니다.

* 욕설과 광고를 담은 댓글은 가차없이 삭제합니다.


  1. 꼬장스카이비전@2021.03.18 14:20 ~$ 우왕 [댓글주소]  [수정/삭제]  [답글작성]
  2. 꼬장스카이비전@2021.03.26 22:42 ~$ 랙앤롤 [댓글주소]  [수정/삭제]  [답글작성]
guest@이름 ~$
guest@패스워드 ~$
guest@홈페이지주소작성 ~$

guest@댓글작성 ~$




bskyvision. Designed by bskyvision.