Dog 응용 프로그램: Javascript와 API를 결합하여 사용

개발자로서 매우 중요한 부분은 API에 연결하여 JSON 자원에서 데이터를 얻는 것이다. JSON은 Javascript 대상 기호를 대표한다.JSON의 일반적인 예는 다음과 같습니다.
  • 데이터 저장
  • 응용 프로그램의 사용자 입력을 위한 데이터 구조 생성
  • 서버에서 클라이언트로 데이터를 전송합니다.그것은 주로 왕복 연결이다.클라이언트에서 서버로, 서버에서 서버로.
  • 데이터 구성 및 검증(GET, POST, PATCH, PUT, DELETE)
  • 이 강좌에서 우리는 일반javascript를 사용하여 매우 간단한 웹 응용 프로그램을 만들 것입니다. 이 응용 프로그램은 API에서 정보를 검색하여 클라이언트 페이지에 표시합니다.
  • view demo
  • source code, Github
  • 네가 알아야 할 것은

  • HTML/CSS에 대한 기본 지식입니다.
  • JavaScript 기초 지식.
  • DOM API를 사용합니다.
  • API에서 JSON 및 JavaScript 객체에 대한 기본 지식을 사용합니다.
  • 우리는 이 강좌에서 무엇을 얻을 것인가

  • 각종 개를 표시할 수 있는 작업 응용 프로그램을 구축한다.
  • API에서 새 개 이미지를 가져오기 전에 마이크로프로세서를 불러오는 것을 표시합니다.
  • API에서 데이터를 가져옵니다.
  • 그것은 보기에 이렇다.

    시작합시다.

    소개


    우선 HTTP 요청을 사용하여 공용 URL 노드와 통신합니다.우리가 사용할 HTTP 방법은 GET이며 자원을 검색합니다.React, Vue 등과 같은 프레임워크나 라이브러리 템플릿을 설치하지 않고 간단한 웹 응용 프로그램을 만드는 것이 목표이기 때문에 HTML, CSS, 자바스크립트를 사용할 것입니다.

    우리의 업무 환경을 세우다


    우리는 내가 선택한 vs 코드 편집기로 이 웹 응용 프로그램을 만들 것이다.원하는 다른 IDE를 사용할 수 있습니다.편집기를 열고 새 디렉터리에 색인을 만듭니다.html 및 아래 코드를 입력하십시오.
    지수html
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Dogs API</title>
      </head>
      <body>
        <main>
          <div class="container">
            <header>
              <h1>Dog Viewer</h1>
              <select class="breeds"></select>
            </header>
          </div>
          <div class="img-container">
            <div class="container">
              <div class="spinner">
                🐶
              </div>
              <img
                src="http://placecorgi.com/260/180"
                class="dog-img show"
                alt="friendly and intimate - man's best friend"
              />
            </div>
          </div>
        </main>
      </body>
    </html>
    
    
    위의 코드에서 우리 프로그램은 JavaScript와 API를 더욱 주목하여 DOM과 함께 작업할 것입니다.구조화된 CSS를 미화하기 위해서는 코드를 복사할 수 있기 때문에 CSS flexbox를 이해하는 것이 중요하다.
    풍격css
    img {
      max-width: 100%;
      height: auto;
    }
    
    a {
      text-decoration: none;
    }
    
    main {
      height: 100vh;
      width: 100%;
    }
    
    header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      position: fixed;
      width: 100%;
      top: 0;
      right: 0;
      left: 0;
      padding: 5px 40px 0;
    }
    
    main .container header h1 {
      font-family: Nunito;
      font-size: 1.5rem;
    }
    
    main .container header select {
      font-size: 1.2rem;
      padding: 5px;
      font-family: Poppins;
      text-transform: capitalize;
    }
    
    main .img-container {
      width: 100%;
      margin-top: 5%;
      padding: 2em 0;
    }
    
    /* animation for the dog spinner */
    main .img-container .spinner {
      font-size: 50px;
      animation: spin 2s linear infinite;
      display: none;
    }
    
    main .img-container .dog-img {
      display: none;
      width: 80%;
      margin: 1em auto;
    }
    
    main .img-container .show {
      display: block;
    }
    
    
    /* rotate the dog spinner 360deg - keyframes */
    @keyframes spin {
      to {
        -webkit-transform: rotateZ(360deg);
                transform: rotateZ(360deg);
      }
    }
    
    
    / * media query */
    
    @media only screen and (min-width: 320px) {
      .container header {
        display: flex;
        flex-direction: column;
      }
      .container header h1 {
        margin-bottom: 20px;
      }
    }
    
    @media only screen and (min-width: 650px) {
      .container header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        flex-direction: row;
      }
    }
    
    @media only screen and (min-width: 875px) {
      .container {
        max-width: 80%;
        margin: 0 auto;
      }
    }
    
    @media only screen and (min-width: 1600px) {
      .container {
        max-width: 70%;
        margin: 0 auto;
      }
    }
    
    
    이제 HTML과 CSS 설정이 생겼으니 응용 프로그램을 설정할 때가 되었습니다.js는 우리 프로젝트의 디렉터리에 있습니다.

    실제 API에 연결


    dogs ceo API를 살펴보고 개발자에게 무엇을 제공했는지 탐색하여 데이터를 검색하고 응용 프로그램의 클라이언트에서 사용할 수 있도록 합니다.
    시작하려면 사이트 문서list all breeds로 이동하십시오.API 끝점의 URLhttps://dog.ceo/api/breeds/list/all이 표시됩니다.링크를 클릭하면 개 유형의 대상이 표시됩니다.
    응용 프로그램.회사 명
    const BREEDS_URL = 'https://dog.ceo/api/breeds/list/all';
    
    const select = document.querySelector('.breeds');
    
    fetch(BREEDS_URL)
      .then(res => {
        return res.json();
      })
      .then(data => {
        const breedsObject = data.message;
        const breedsArray = Object.keys(breedsObject);
        for (let i = 0; i < breedsArray.length; i++) {
          const option = document.createElement('option');
          option.value = breedsArray[i];
          option.innerText = breedsArray[i];
          select.appendChild(option);
        }
        console.log(breedsArray);
      });
    
    select.addEventListener('change', event => {
      let url = `https://dog.ceo/api/breed/${event.target.value}/images/random`;
      getDoggo(url);
    });
    
    const img = document.querySelector('.dog-img');
    const spinner = document.querySelector('.spinner');
    
    const getDoggo = url => {
      spinner.classList.add('show');
      img.classList.remove('show');
      fetch(url)
        .then(res => {
          return res.json();
        })
        .then(data => {
          img.src = data.message;
        });
    };
    
    img.addEventListener('load', () => {
      spinner.classList.remove('show');
      img.classList.add('show');
    });
    
    우리가 여기서 하는 첫 번째 일은 API 단점 URL에 변수를 설명하는 것이다. 이것은 상수이다. 왜냐하면 우리는 그것이 전체 개발 과정에서 변화하기를 원하지 않기 때문이다.
    우리의 색인으로 돌아가다.html, 우리의 선택 라벨과 종류를 기억하세요.여기서 현재 이미지를 다른 이미지로 변경할 수 있도록 선택할 수 있는 드롭다운 메뉴를 만듭니다.
    다음에 해야 할 일은 응답에서 JSON 본문 내용을 추출하는 것입니다. 우리는 JSON () 방법으로 약속을 되돌려줍니다. 이 약속은 단점에서 온 데이터로 이 요청의 응답을 해석합니다.
    API 목록에서 끝 보기

    대상을 쉽게 처리하기 위해서, 우리는 Object.keys() 을 사용하여 색인 0부터 순환할 수 있습니다.
    for 순환에서, 우리는 API의 모든 개 품종을 열거하고, innerText를 사용하며, 마지막에 select 태그에 추가해서 API의 결과를 표시할 수 있는 옵션 태그를 만들 수 있습니다.
    새 그림을 표시하기 위해 아래 목록에서 모든 그림을 변경할 수 있도록 이벤트 탐지기를 색인에 추가해야 합니다.html로 아래 목록의 옵션을 단독으로 변경합니다.
    이 강좌의 마지막 단계는 함수를 만드는 것입니다. 밑에 있는 목록에서 이름을 선택할 때, 우선 마이크로 모뎀을 불러오고 우리의 스타일 설명에서 화면에 표시된 이미지를 삭제해야 합니다.css.여기에서 새 이미지를 가져오고 마이크로프로세서를 삭제하며 새 이미지를 블록 요소로 웹 응용 프로그램에 표시합니다.

    결론


    이 강좌를 읽으신 것을 축하합니다. 일반 JavaScript를 사용하여 HTTP 요청을 통해 API에 연결하는 방법을 설명합니다.이 방법을 더욱 잘 이해하고 이 방법을 사용하면 모든 공공 API를 쉽게 얻고 통신하여 데이터를 얻고 사이트에 표시할 수 있습니다.우리는 노드 같은 문제를 걱정할 필요가 없이 이 모든 것을 했다.js, 설치 패키지(npm), 웹 패키지 등.
    이 강좌는 단지 간단한 순서에 따라 점진적인 지침일 뿐이니, 나는 네가 이것이 매우 유용하다고 생각하기를 바란다.나는 시정을 받아들이고 수시로 여러분과 나누고 싶습니다.

    좋은 웹페이지 즐겨찾기