Ответ
HTTP-методы (или "глаголы") указывают на желаемое действие, которое должно быть выполнено для указанного ресурса. Они определяют семантику клиентского запроса.
Основные методы:
GET
: Запрашивает представление ресурса. Не должен изменять состояние сервера. Является безопасным и идемпотентным.POST
: Отправляет данные на сервер для создания нового ресурса (например, отправка формы). Не является идемпотентным.PUT
: Полностью заменяет существующий ресурс данными из тела запроса. Если ресурс не существует, может его создать. Является идемпотентным.PATCH
: Вносит частичные изменения в ресурс. Не является идемпотентным по умолчанию, но может быть реализован как таковой.DELETE
: Удаляет указанный ресурс. Является идемпотентным.
Важные концепции:
- Идемпотентность: Повторное выполнение одного и того же запроса приводит к тому же результату, что и одиночный запрос (например, многократный
DELETE /users/1
удалит пользователя один раз). - Безопасность: Метод не изменяет состояние сервера (например,
GET
,HEAD
,OPTIONS
).
Пример использования с библиотекой requests
в Python:
import requests
# Получение данных
response_get = requests.get('https://api.example.com/items/1')
print(f"GET status: {response_get.status_code}, data: {response_get.json()}")
# Создание нового ресурса
new_item = {'name': 'New Item', 'price': 100}
response_post = requests.post('https://api.example.com/items', json=new_item)
print(f"POST status: {response_post.status_code}") # Ожидается 201 Created
# Удаление ресурса
response_delete = requests.delete('https://api.example.com/items/1')
print(f"DELETE status: {response_delete.status_code}") # Ожидается 200 OK или 204 No Content