Перейти к основному содержимому

📄 HTTP Methods (Методы HTTP)

1. Что такое RESTful API?

RESTful API следует стандартизированному стилю проектирования, который облегчает взаимодействие между различными системами в сети. Чтобы соответствовать принципам REST, API должен быть предсказуемым и простым для понимания. Для фронтенд-разработчика внимание сосредоточено в основном на трёх аспектах:

  • URL Path (Путь URL): Определяет область запроса клиента, например:
    • /products: Скорее всего, возвращает список товаров
    • /products/abc: Предоставляет подробности для товара с ID "abc"
  • HTTP Methods (Методы HTTP): Определяют конкретное действие:
    • GET: Используется для получения данных
    • POST: Используется для создания новых данных
    • PUT: Используется для обновления существующих данных
    • DELETE: Используется для удаления данных
  • Status Codes (Коды состояния): Дают быстрое представление о том, был ли запрос успешным, и если нет — где может быть проблема. Распространённые коды состояния:
    • 200: Успех
    • 404: Запрашиваемый ресурс не найден
    • 500: Ошибка сервера

2. Если GET тоже может передавать данные в запросе, зачем использовать POST?

Раз GET тоже может отправлять запросы с данными, зачем нам по-прежнему использовать POST?

Это обусловлено четырьмя соображениями:

  1. Безопасность: Поскольку данные GET добавляются к URL, конфиденциальные данные легко раскрыть. POST помещает данные в тело запроса, что относительно безопаснее.
  2. Ограничение размера данных: При использовании GET браузеры и серверы накладывают ограничения на длину URL (хотя они немного варьируются между браузерами, обычно около 2048 байт), что ограничивает объём данных. POST номинально не имеет ограничений, но на практике middleware обычно настраивается для ограничения размера данных во избежание злонамеренных атак с большими объёмами данных. Например, body-parser в Express.
  3. Семантическая ясность: Обеспечивает, чтобы разработчики могли чётко понимать назначение запроса. GET обычно используется для получения данных, тогда как POST больше подходит для создания или обновления данных.
  4. Неизменяемость (Idempotency): В протоколе HTTP метод GET спроектирован как «безопасный» — независимо от количества отправленных запросов, нет опасений по поводу изменения данных на сервере.

3. Для чего предназначен метод PUT в HTTP?

Какова цель метода PUT?

Он служит двум основным целям:

  1. Обновление существующего ресурса (например, изменение информации о пользователе)
  2. Создание нового ресурса, если он не существует

Пример

const axios = require('axios');

async function updateUser(userId, newName) {
const url = `https://api.example.com/users/${userId}`; // URL API
const data = {
name: newName,
};

try {
const response = await axios.put(url, data); // Выполнение PUT-запроса
console.log('Пользователь обновлён:', response.data); // Вывод обновлённой информации о пользователе
} catch (error) {
console.log('Ошибка обновления пользователя:', error); // Вывод информации об ошибке
}
}

updateUser(1, 'Pitt Wu');