๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป Deep Wide Programming/Javascript & Vanila JS

[์กฐ์ฝ”๋”ฉ]javascript- API ํ™œ์šฉ ์—ฐ์Šตํ•˜๊ธฐ(์นด์นด์˜คAPI๋กœ ์ฑ…๊ฒ€์ƒ‰ ์›น ๋งŒ๋“ค๊ธฐ)

728x90
๋ฐ˜์‘ํ˜•

API๋งˆ๋‹ค ์ •ํ•ด์ง„ '์š”์ฒญ'๊ณผ '์‘๋‹ต'์˜ ํ˜•์‹์ด ์žˆ๋Š”๋ฐ, ์ด ํ˜•์‹์ด ์ž‘์„ฑ๋œ ๋ฌธ์„œ๋ฅผ API ๊ฐ€์ด๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

 

AJAX๋ฅผ ์‚ฌ์šฉ!

 

 

1. html ๊ธฐ๋ณธ ์„ธํŒ… ํ›„, 

2.

3. Boby ์ค‘ ๋งจ ํ•˜๋‹จ์— ๋ณต๋ถ™

4. jQuery๋ฅผ ์ด์šฉํ•œ AJAX ์“ฐ๊ธฐ (jQuery๋กœ ajax ํ•จ์ˆ˜๋ฅผ ์“ฐ๋ฉด ์„œ๋ฒ„์™€ ์ข€๋” ์‰ฝ๊ฒŒ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค) 

api.jquery.com/jquery.ajax/

 

jQuery.ajax() | jQuery API Documentation

Description: Perform an asynchronous HTTP (Ajax) request. The $.ajax() function underlies all Ajax requests sent by jQuery. It is often unnecessary to directly call this function, as several higher-level alternatives like $.get() and .load() are available

api.jquery.com

Example ์˜ˆ์‹œ๋ฅผ ์ผ๋‹จ ๊ธ์–ด์™€์„œ, html body ํƒœ๊ทธ ๋‚ด, script ํƒœ๊ทธ ์•ˆ์ชฝ์— ๋ณต๋ถ™.

 

5. ์นด์นด์˜ค Developer ๋“ค์–ด๊ฐ€์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ถ”๊ฐ€๋ฅผ ํ†ตํ•ด API ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ์›ํ•˜๋Š” API ๋ฌธ์„œ๋ฅผ ํ† ๋Œ€๋กœ, Ajax ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.!

developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-book

 

Kakao Developers

์นด์นด์˜ค API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด๋ณด์„ธ์š”. ์นด์นด์˜ค ๋กœ๊ทธ์ธ, ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ, ์นœ๊ตฌ API, ์ธ๊ณต์ง€๋Šฅ API ๋“ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

developers.kakao.com

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>API ์—ฐ์Šต</title>
</head>

<body>
    <h1> API ์—ฐ์Šต์šฉ ์‚ฌ์ดํŠธ๐Ÿฅ  </h1>
    <script src="https://code.jquery.com/jquery-3.5.1.js"
        integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
    <script>
        $.ajax({
                method: "GET",
                url: "https://dapi.kakao.com/v3/search/book?target=title",
                data: {
                    query: "๋ฏธ์›€๋ฐ›์„ ์šฉ๊ธฐ",
                },
                headers: {
                    Authorization: "KakaoAK 0f7acd5ca96b1d76578d02adc4161263"
                },
            })
            .done(function (msg) {
                alert("Data Saved: " + msg);
            });
    </script>
</body>

</html>

 

 

alert์ฐฝ์ด ์•„๋‹ˆ๋ผ, ์ข€ ๋” ์ž์„ธํžˆ ๋ณด๊ธฐ ์œ„ํ•ด console์ฐฝ์— ์ฐ์–ด๋ณด๋„๋กํ•˜์ž. 

    <script>
        $.ajax({
                method: "GET",
                url: "https://dapi.kakao.com/v3/search/book?target=title",
                data: {
                    query: "๋ฏธ์›€๋ฐ›์„ ์šฉ๊ธฐ",
                },
                headers: {
                    Authorization: "KakaoAK 0f7acd5ca96b1d76578d02adc4161263"
                },
            })
            .done(function (msg) {
                console.log(msg);
            });
    </script>

ํ— ๋Œ€๋ฐ•.. ์ž…๋ ฅํ–ˆ๋˜ '๋ฏธ์›€๋ฐ›์„ ์šฉ๊ธฐ'์— ๋Œ€ํ•œ ์ฑ… ์ •๋ณด๊ฐ€ ์žˆ๋‹ค. .

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>API ์—ฐ์Šต</title>
</head>

<body>
    <h1> API ์—ฐ์Šต์šฉ ์‚ฌ์ดํŠธ๐Ÿฅ  </h1>
    <script src="https://code.jquery.com/jquery-3.5.1.js"
        integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
    <script>
        $.ajax({
                method: "GET",
                url: "https://dapi.kakao.com/v3/search/book?target=title",
                data: {
                    query: "ํ˜ธ๋ชจ์‚ฌํ”ผ์—”์Šค",
                },
                headers: {
                    Authorization: "KakaoAK 0f7acd5ca96b1d76578d02adc4161263"
                },
            })
            .done(function (msg) {
                console.log(msg);
            });
    </script>
</body>

</html>

ํ˜ธ๋ชจ์‚ฌํ”ผ์—”์Šค๋กœ ๋ฐ”๊ฟ”๋ดค๋‹ค..

ํ— ๋Œ€๋ฐ• ์งฑ์‹ ๊ธฐํ•ด..๋‚ด๊ฐ€ ํ•ด๋ƒˆ์–ด API๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ด๋Ÿฐ๊ฑฐ๊ตฌ๋‚˜. (API ๊ฐœ๋…์„ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ์จ๋ณธ ๊ฒƒ์€ ์ฒ˜์Œ์ด๋‹ค. . . ใ…‹)

 

์ž ์ด์ œ ์ด๊ฒƒ์„ console์ฐฝ์„ ๋„˜์–ด, ์›นํŽ˜์ด์ง€์— ๋กœ๋“œ์‹œํ‚ค๋„๋ก ํ• ๊ฑฐ๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ํ•˜๋‹จ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผํ•œ๋‹ค.

 

"key": "value"

-> data.key => "value"๋ฅผ ๊บผ๋‚ด์ค€๋‹ค. 

 

Step2. 

Step3. 

 

 

์ž, ์ด์ œ ์‹œ์ž‘ํ•ด๋ณด์ž

documents ์šฐํด๋ฆญ

๊ทธ๋Ÿฌ๋ฉด ํ•˜๋‹จ์—, temp1 ์•ˆ์— ์‘๋‹ต๋ฐ›์€ object๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>API ์—ฐ์Šต</title>
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Gugi&family=Nanum+Myeongjo&family=Yeon+Sung&display=swap"
        rel="stylesheet">
    <style>
        html {
            font-family: 'Gugi', cursive;

        }
    </style>
</head>

<body>
    <h1> API Practice </h1>
    <h2> ๐Ÿ“š Book Search Using KaKao API </h2>
    <hr>
    <div class="container">
        <div class="thumbnail"></div>
        <p></p>
    </div>
    <script src="https://code.jquery.com/jquery-3.5.1.js"
        integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
    <script>
        $.ajax({
                method: "GET",
                url: "https://dapi.kakao.com/v3/search/book?target=title",
                data: {
                    query: "ํ˜ธ๋ชจ์‚ฌํ”ผ์—”์Šค",
                },
                headers: {
                    Authorization: "KakaoAK 0f7acd5ca96b1d76578d02adc4161263"
                },
            })
            .done(function (msg) {
                $("p").append(msg.documents[2].title);
                $(".thumbnail").append('<img src="' + msg.documents[2].thumbnail + '"/>');
            });
    </script>
</body>

</html>

 

๊ฐ„๋‹จํ•˜๊ฒŒ ์ข€๋” ์˜ˆ์˜๊ฒŒ ๋ฐ”๊ฟ”์ค˜๋ดค๋‹ค..

ํƒ€-๋‹ค..

 

Jqeury๋ฅผ ์ด์šฉํ•ด, ๊ฒ€์ƒ‰๊ธฐ๋Šฅ๊นŒ์ง€ ์ถ”๊ฐ€ํ–ˆ๋‹ค!

์ถœ์ฒ˜

 www.youtube.com/watch?v=QPEUU89AOg8

 

 

728x90
๋ฐ˜์‘ํ˜•