Axios API 호출에 대한 간단한 설명

14298 단어 axiosdemobeginnersapi

API 호출에 대한 간단한 설명


이것은 웹 응용 프로그램에 외부 API를 호출하는 데 사용되는 초보자의 우호적인 시범이다.
본 프레젠테이션에 사용된 API는 https://reqres.in/ 에서 나온 것입니다.GET 요청을 실행하려면 API 키나 기타 어떤 것도 필요하지 않으므로 프레젠테이션이 매우 편리합니다.

우선 우리가 이 시연에서 무엇을 해야 하는지 보여 드리겠습니다.
우리는 페이지'사용자 페이지 1'과'사용자 페이지 2'에 두 개의 단추를 가지고 있다.
사용자가 사용자 페이지 1을 클릭하면 외부 API에서 페이지 1의 사용자 결과를 가져와 표시합니다. 그렇지 않으면 사용자 페이지 2입니다.

사용자 페이지 1을 클릭하면

사용자 페이지 2를 클릭하면
우리는 API 호출을 실행하기 위해 매우 편리한 설정을 제공하는 제3자 라이브러리인 axios를 사용할 것이다.
fetchapi에 비해 axios에서 깨달은 장점은 다음과 같다.
  • 우리는 추가 실용 함수를 정의하여 방법, url,postData를 전달할 필요가 없다...Axios는 Axios와 같은 미리 정의된 방법을 제공합니다.가져오기,axios.발표, 너는 직접 그것들을 사용할 수 있다.
  • fetch API로 오류를 처리할 때의 좌절감을 의식할 수 있습니다. 오류가 기술적인 것이 아닐 때 (예를 들어 API가 값을 되돌려주지만 거짓일 때) 오류를 포착하지 못하고 막을 수 있습니다.응,axios는 충분히 똑똑해. 그걸 포착하고 실수를 얼굴에 던질 수 있어.😊
  • "headers": "응용 프로그램/json"을 입력할 필요가 없습니다. 별거 아닌 건 알지만 그렇습니다.
  • 결과를 axios의 json으로 해석할 필요가 없습니다.
  • 그래서 이 작은 프레젠테이션에서 우리는 사이트의 외관을 토론하지 않고 API 호출을 더 많이 토론한다.
    다음은 이번 프레젠테이션을 고려하는 단계입니다.
  • HTML에서 페이지 구조를 만듭니다.
  • 일부 화장품은 bootstrap 4.7.0을 사용하여 시연합니다.
  • API를 호출하여 브라우저 DOM에 결과를 표시하는 데 사용할 함수를 작성합니다.
  • 여기에 우리는 색인이 하나 있다.html 파일:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>News</title>
        <link rel="apple-touch-icon" sizes="180x180" href="assets/apple-touch-icon.png">
        <link rel="icon" type="image/png" sizes="32x32" href="assets/favicon-32x32.png">
        <link rel="icon" type="image/png" sizes="16x16" href="assets/favicon-16x16.png">
        <link rel="manifest" href="assets/site.webmanifest">
        <link rel ="stylesheet" href ="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
        <link rel ="stylesheet" href ="style.css">
    </head>
    <body>
        <div class="search-container">
            <span><button onclick="renderUsers('1')" type="button" class="btn btn-light">User Page 1</button></span>
            <span><button onclick="renderUsers('2')" type="button" class="btn btn-light">User Page 2</button></span>
        </div>
        <div class = "card_container"></div>
        <template id="tmplt">
            <div class="card">
                <img class="card-img-top">
                <div class="card-body">
                    <h3 class="card-title"></h3>
                    <p class="card-text"></p>
                </div>
            </div>
        </template>
        <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
        <script type="text/javascript" src="apiCall.js"></script>
    </body>
    </html>
    
    그래서 이 페이지에서 우리는'사용자 페이지 1'과'사용자 페이지 2'가 페이지 맨 위에 두 개의 단추가 있습니다.
    사용자가 "사용자 페이지 1"을 눌렀을 때, 우리는 1 페이지의 사용자 카드를 표시하고 싶고, "사용자 페이지 2"를 눌렀을 때, 2 페이지의 사용자 카드를 표시합니다.
    각 사용자 카드는 두 부분으로 구성되어 있는데 그것이 바로 사용자 화신과 카드체이다.카드 주체 안에 사용자 이름과 이메일이 있습니다.
    디자인에 있어서 스타일을 볼 수 있습니다.css, 나는 단지 간단한 것을 만들었을 뿐이다.
    apiCall에 대해js, 나는 세 가지 함수를 썼다.
  • 데이터 가져오기▶️ axios를 사용하여 API를 호출하고 데이터를 되돌려줍니다.
  • 렌더링▶️ 카드 용기의 사용자 카드를 렌더링합니다.
  • 그게 제일 중요해.js:
    const getData = (n) => {
        return axios.get(`https://reqres.in/api/users?page=${n}`)
        .then(response => {
            const data = response.data.data;
            return data;
        }).catch(err => {
            console.log(err, err.response);
        });
    };
    
    const renderUsers = async (n) => {
        const data = await getData(n);
        const container = document.querySelector(".card_container");
        container.innerHTML = "";
        const template = document.getElementById("tmplt");  
        for(let i = 0; i < data.length; i++){
            let user = data[i];
            let clone = template.content.cloneNode(true);
            const username = user.first_name + user.last_name;
            let avatar = clone.querySelector(".card-img-top");
            avatar.src = user.avatar;
            avatar.alt = username;
            let name = clone.querySelector(".card-title");
            name.innerHTML = username;
            let email = clone.querySelector(".card-text");
            email.innerHTML = user.email;
            container.appendChild(clone);
        }
    }
    
    우리가 클릭한 이 두 단추 ('사용자 페이지 1'과'사용자 페이지 2') 는 onclick 이벤트와 FirerenderUsers 함수를 정탐하고 있습니다.함수를 호출할 때, 매개 변수 n도 함수에 전달되며, 잠시 후에 이 함수를 사용할 것입니다.매개 변수에 대한 하드코딩 1과 2는 데모 목적으로만 사용됩니다.
    따라서renderUsers 함수가 호출될 때, getData 함수를 시작하여 매개 변수 (페이지 번호) 를 전송합니다. 이 매개 변수 (1 또는 2) 는 우리가 호출할 API URL에 전달됩니다.따라서 만약 우리가 1을 전송한다면, 그것은 1페이지의 결과를 얻을 것이다. 그렇지 않으면.
    되돌아오는 데이터를 얻은 후, 우리는 카드 용기의 내부 html를 제거하여 새로운 카드를 보여줄 것이다.
    우리는 데이터를 순환해서 훑어보고 우리가 원하는 플러그인 정보를 얻습니다. 이 예에서 URL, 전자메일, 이름을 화신합니다.API 문서를 참조하여 반환된 데이터가 어떻게 되는지 파악하여 액세스할 수 있습니다.
    마지막으로, 우리는 되돌아오는 정보를 각자의 노드에 입력하고, 전체 복제체를 카드 용기에 부가할 것이다.
    이 프레젠테이션을 개선하거나 어떤 일에 대해 더 깊이 있게 설명할 수 있는지 알려주십시오.😃
    저를 따라 웹 디자인, 프로그래밍과 자기 보완에 관한 더 많은 글을 읽어 주십시오😊

    좋은 웹페이지 즐겨찾기