
Что такое REST (передача репрезентативного состояния)?
Когда вызывается RESTful API, сервер передает клиенту представление о состоянии запрошенного ресурса.
Представление состояния может быть в формате JSON, и, вероятно, для большинства API это действительно так. (Он также может быть в формате XML или HTML)
Что делает сервер?
Когда вы, клиент, вызываете один из его API, это зависит от двух вещей, которые вам нужно предоставить серверу:
- Идентификатор интересующего вас ресурса. Это URL-адрес ресурса, также известный как конечная точка. На самом деле URL означает унифицированный указатель ресурса.
– операция, которую сервер должен выполнять с этим ресурсом, в форме метода HTTP или глагола. Распространенными методами HTTP являются GET, POST, PUT и DELETE.
Как это работает?
API-интерфейсы REST взаимодействуют через HTTP-запросы для выполнения стандартных функций базы данных, таких как создание, чтение, обновление и удаление записей (также известных как CRUD) в ресурсе. Например…
– REST API будет использовать запрос GET для извлечения записи,
– запрос POST для создания записи,
– запрос PUT для обновления записи,
– и запрос DELETE для удаления. один.
Все методы HTTP могут использоваться в вызовах API. Хорошо спроектированный REST API похож на веб-сайт, работающий в веб-браузере со встроенными функциями HTTP.
Настройка проекта
1. Запустите этот код в командной строке, чтобы создать новое приложение для реагирования.
npx create-react-app rest-api
1а. компакт-диск в папку приложения
cd rest-api
1б. Запустить запуск npm
Теперь ваш проект запущен и работает. Приступаем к кодированию!

Структура папок
На корневом уровне мы будем хранить следующие файлы.
- Index.JS
- App.JS
- App.CSS
- Index.CSS
Компонент приложения
Очистите свой App.js, удалив все в div, чтобы он выглядел так.
import React from ‘react’;
import ‘./App.css’;
function App(){
return (
<div className=”App”>
Hello World!
</div>
)
}
export default App
Получение данных API
Теперь запишем данные из [QuotesApi](https://type.fit/api/quotes) с помощью хука useEffect.
import ‘./App.css’;
import React,{useEffect} from ‘react’;
export default function App() {
useEffect(() => {
}, []);
return (
<div className=”App”>
</div>
);
}
**Укажите свой URL**
useEffect(() => {
const url = “https://type.fit/api/quotes";
}, []);
Создайте асинхронную функцию
Затем создайте асинхронную функцию для получения наших данных. Для этого варианта использования функция должна будет подождать после получения данных (наше обещание), прежде чем продолжить.
const fetchData = async () => {
try {
const res = await fetch(url);
const json = await res.json();
console.log(json);
} catch (err) {
console.log(“error”, err);
}
};
Поместите функцию fetchData в хук useEffect и не забудьте вызвать ее именно так.
useEffect(() => {
const url = “https://type.fit/api/quotes";
const fetchData = async () => {
try {
const res = await fetch(url);
const json = await res.json();
console.log(json);
} catch (err) {
console.log(“error”, err);
}
};
fetchData();
}, []);
Только что созданная функция заключена в оператор try…catch для перехвата ошибок и вывода их на консоль. Зачем мы это делаем? Чтобы облегчить отладку и предотвратить неожиданный сбой приложения.
Проверьте свой оператор console.log и посмотрите, получаете ли вы правильные данные из API.

Как получить данные из API?
Для этого нам нужно будет импортировать useState из реакции и определить его.
import React,{useEffect, useState} from ‘react’;
setQuotes(json);
И тогда ваше возвращаемое тело должно выглядеть так:
return (
<table className=”App”>
<tr>
<th>Text</th>
<th>Author</th>
</tr>
{quotes.map(({ author, text }, index) => (
<tr key={index}>
<th>{text}</th>
<th>{author}</th>
</tr>
))}
</table>
);
Теперь давайте соберем все вместе вместе со стилями, чтобы завершить проект!
import ‘./App.css’;
import React,{useEffect, useState} from ‘react’;
export default function App() {
const [quotes, setQuotes] = useState([]);
useEffect(() => {
const url = “https://type.fit/api/quotes";
const fetchData = async () => {
try {
const res = await fetch(url);
const json = await res.json();
console.log(json);
setQuotes(json);
} catch (err) {
console.log(“error”, err);
}
};
fetchData();
}, []);
return (
<table className=”App”>
<tr>
<th>Text</th>
<th>Author</th>
</tr>
{quotes.map(({ author, text }, index) => (
<tr key={index}>
<th>{text}</th>
<th>{author}</th>
</tr>
))}
</table>
);
}
Снова проверьте консоль и просмотрите данные, которые вы получаете от API.
Это будет Выход.

Выглядит великолепно!
Большое спасибо, что дочитали до конца, хорошего дня!