Axios — это библиотека, которая упрощает отправку асинхронных HTTP-запросов к конечным точкам REST, и мы будем использовать эту библиотеку для получения некоторых данных изображения из API Unsplash, как указано в Курсе Udemy.

Unsplash — это веб-сайт с общими стоковыми фотографиями, созданный множеством фотографов со всего мира. На их странице документации вы можете узнать, как работает их API, и ключевую информацию, которая вам понадобится для отправки первого запроса Get, например, ваш ключ доступа (вам нужно будет создать учетную запись разработчика и приложение на их веб-сайте, чтобы получить ключ доступа).

Шаг 1. Установите axios в свое приложение React

Просто введите команду npm install -- save axios в свой терминал.

Шаг 2. Импортируйте аксиомы в свое приложение и вызовите запрос Get

Импортируйте аксиомы и введите метод axios.get() с необходимыми аргументами. Есть два аргумента: первый аргумент — это адрес, на который вы будете отправлять запрос; а второй аргумент — это объект, в котором вы можете настроить свой запрос.

По этой ссылке вы увидите документацию по API поиска фотографий Unsplash. Для основы вам понадобится адрес (/search/photos) и ваш термин запроса. Как упоминалось ранее, вам понадобится ключ доступа для авторизации доступа, и вам нужно будет ввести свой ключ после Authorization: Client-ID в объекте заголовка как часть аргумента (ссылка для подробностей).

import React from 'react';
import axios from 'axios';
class App extends React.Component {
   axios.get(‘https://api.unsplash.com/search/photos/', 
      {
         params: { query: 'search-keyword' },
         headers: {
            Authorization: ‘Client-ID [Type your ACCESS_KEY]’
         }
      }
   );
   render() {
   }
};

Шаг 3. Получите ответ от асинхронного запроса

Есть два способа получить объект обещания, ответ на асинхронный запрос. Первый способ — добавить метод .then() после метода initial.get(), как показано ниже.

import React from 'react';
import axios from 'axios';
class App extends React.Component {
   axios.get(‘https://api.unsplash.com/search/photos/', 
      {
         params: { query: 'search-keyword' },
         headers: {
            Authorization: ‘Client-ID [Type your ACCESS_KEY]’
         }
      }
   ).then(response => {
      console.log(response.data.results)
   });
   render() {
   }
};

Альтернативный и более современный способ — использовать async/await, что позволяет нам писать асинхронные коды синхронным образом. Все, что вам нужно сделать, это написать async перед именем метода, в котором выполняется асинхронный запрос, а затем добавить await перед вашим сетевым запросом, в данном случае axios. Чтобы получить доступ к возвращаемому ответу, вам нужно будет назначить переменную сетевому запросу, как показано ниже.

import React from 'react';
import axios from 'axios';
class App extends React.Component {
   async requestMethod(){
      const response = await axios.get(
         ‘https://api.unsplash.com/search/photos/', 
         {
            params: { query: 'search-keyword' },
            headers: {
               Authorization: ‘Client-ID [Type your ACCESS_KEY]’
            }
          }
      );
      console.log(response.data.results);
   }
render() {
}
};

Шаг 4. Сохраните ответ в состоянии

Чтобы данные были полезны в вашем приложении для реагирования, всегда полезно хранить ответ в объекте состояния приложения. Чтобы связать метод, чтобы вы могли получить доступ к состоянию приложения с помощью 'this', вы можете сделать это, переключившись на функцию стрелки, как показано ниже.

state = { images: [] }
requestMethod = async () => {
   const response = await axios.get(
         ‘https://api.unsplash.com/search/photos/', 
         {
            params: { query: 'search-keyword' },
            headers: {
               Authorization: ‘Client-ID [Type your ACCESS_KEY]’
            }
          }
      );
   this.setState({images: response.data.results});
}

Содержание

React basic 1 — «Привет, React World. Настройка вашего первого приложения React»

React basic 2 — JSX, расширение синтаксиса для JavaScript, похожее на HTML

React basic 3 — Многоразовые функциональные компоненты

React basic 4 — Компоненты на основе классов и методы жизненного цикла

React basic 5 — Основные обработчики событий

React basic 6 — использование библиотеки Axios для извлечения данных

React basic 7 — визуализировать список на основе ответа API

React basic 8 — Создайте приложение React и разместите его на сервере

Ссылка

Modern React with Redux от Стивена Грайдера | Удемы

Асинхронный Javascript с использованием Async — Await | Скотч.ио