REST API — это архитектурный стиль для создания веб-сервисов, который использует:
/api/users
)Основные принципы REST:
Стандартный браузерный API для HTTP-запросов:
function fetchUsers() {
fetch('https://api.example.com/users')
.then(response => {
if (!response.ok) throw new Error('Network error');
return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
}
Создаем переиспользуемый хук для запросов:
import { useState, useEffect } from 'react';
function useApi(endpoint) {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
fetch(endpoint)
.then(res => res.json())
.then(data => {
setData(data);
setLoading(false);
})
.catch(err => {
setError(err);
setLoading(false);
});
}, [endpoint]);
return { data, loading, error };
}
// Использование:
const { data, loading, error } = useApi('/api/users');
npm install axios
Пример использования:
import axios from 'axios';
async function getUsers() {
try {
const response = await axios.get('/api/users');
console.log(response.data);
} catch (error) {
console.error('Error:', error.response?.data);
}
}
import React, { useState, useEffect } from 'react';
import axios from 'axios';
function UserList() {
const [users, setUsers] = useState([]);
const [loading, setLoading] = useState(false);
// GET (получение данных)
useEffect(() => {
const fetchUsers = async () => {
setLoading(true);
try {
const { data } = await axios.get('/api/users');
setUsers(data);
} catch (error) {
console.error('Fetch error:', error);
} finally {
setLoading(false);
}
};
fetchUsers();
}, []);
// POST (создание)
const addUser = async (user) => {
try {
const { data } = await axios.post('/api/users', user);
setUsers(prev => [...prev, data]);
} catch (error) {
console.error('Create error:', error);
}
};
// DELETE (удаление)
const deleteUser = async (id) => {
try {
await axios.delete(`/api/users/${id}`);
setUsers(prev => prev.filter(user => user.id !== id));
} catch (error) {
console.error('Delete error:', error);
}
};
if (loading) return <div>Loading...</div>;
return (
<div>
{users.map(user => (
<div key={user.id}>
{user.name}
<button onClick={() => deleteUser(user.id)}>Delete</button>
</div>
))}
</div>
);
}
REST API — стандартный способ взаимодействия с сервером в React-приложениях. Для работы с ним можно использовать как нативные браузерные API (fetch), так и библиотеки типа Axios. Ключевые аспекты — правильная обработка состояний загрузки и ошибок, разделение логики и соблюдение REST-принципов.