API 호출

자바스크립트 API 호출



XML HTTP 요청


  • 모든 최신 브라우저는 서버에서 데이터를 요청하기 위해 XMLHttpRequest 객체를 지원합니다.
  • 최신 브라우저뿐만 아니라 가장 오래된 브라우저에서도 작동합니다.
  • ES6에서 더 이상 사용되지 않지만 여전히 널리 사용됩니다.

  • var request = new XMLHttpRequest();
    request.open('GET','https://jsonplaceholder.typicode.com/users')
    request.send();
    request.onload =() =>{
    console.log(JSON.parse(request.response));
    }
    


    API 가져오기


  • Fetch API는 비동기식으로 네트워크 전체를 포함하여 리소스를 가져오기 위한 인터페이스를 제공합니다.
  • Promise를 반환합니다.
  • 응답 또는 발생한 오류 중 하나의 값을 포함하는 개체입니다.
  • .then()은 Promise가 완료되면 프로그램에 무엇을 할지 알려줍니다.

  • fetch('https://jsonplaceholder.typicode.com/users')
    .then(response=>{
    return response.json();})
    .then(data=>{
    console.log(data);
    })
    


    악시오스


  • HTTP 요청을 만들기 위한 오픈 소스 라이브러리입니다.
  • 브라우저와 노드 js 모두에서 작동합니다.
  • 외부 CDN을 사용하여 HTML 파일에 포함될 수 있습니다.
  • 또한 fetch API와 같은 약속을 반환합니다.

  • <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    
    axios.get('https://jsonplaceholder.typicode.com/users')
    .then(response =>{
    console.log(response.data)})
    


    제이쿼리 AJAX


  • 비동기 HTTP 요청을 수행합니다.
  • $.ajax() 메서드를 사용하여 요청합니다.
  • GET 및 POST 요청을 보내는 기능
  • JSON, XML, HTML 또는 스크립트를 로드하는 기능

  • <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    
    $(document).ready(function(){
    $.ajax({
    url:"https://jsonplaceholder.typicode.com/users",
    type:"GET",success:function(result){
    console.log(result);
    }
       })
    })
    


    루비코


  • 비동기 코드는 단순해야 합니다.
  • 기능적 스타일은 비동기를 신경쓰지 않아야 합니다.
  • 기능적 변환은 구성 가능하고 성능이 뛰어나고 표현하기 쉬워야 합니다.

  • const { pipe, map } = rubico
    
    const toTodosUrl = id => `https://jsonplaceholder.typicode.com/todos/${id}`
    
    const logTodoByID = pipe([ // fetch a Todo and log it
      toTodosUrl,
      fetch,
      response => response.json(),
      console.log,
    ])
    
    const todoIDs = [1, 2, 3, 4, 5]
    
    map(logTodoByID)(todoIDs) 
    // fetch Todos per id of TodoIDs and log them
    // { userId: 1, id: 4, title: 'et porro tempora', completed: true }
    // { userId: 1, id: 1, title: 'delectus aut autem', completed: false }
    // { userId: 1, id: 3, title: 'fugiat veniam minus', completed: false }
    // { userId: 1, id: 2, title: 'quis ut nam facilis...', completed: false }
    // { userId: 1, id: 5, title: 'laboriosam mollitia...', completed: false }
    
    // same as above but with limited concurrency
    // map.pool(2, logTodoByID)(todoIDs)
    

    좋은 웹페이지 즐겨찾기