Состояние
REST-api является безсостояночным, то есть сервер не хранит информацию о состоянии клиента между запросами. Это означает, что клиент должен передавать все необходимые данные в каждом запросе, чтобы мог обработать его правильно. Безсостояночность позволяет создавать более масштабируемые и отказоустойчивые системы, поскольку зависит от состояния клиента.
Пример
Давайте рассмотрим пример REST-api для управления пользователями. Мы можем иметь следующие ресурсы:
`users`: коллекция всех пользователей
`users/{id}`: отдельный пользователь с заданным идентификатором
Мы можем использовать следующие методы HTTP для взаимодействия с этими ресурсами:
`GET /users`: получить список всех пользователей
`GET /users/{id}`: получить информацию о отдельном пользователе
`POST /users`: создать нового пользователя
`PUT /users/{id}`: обновить информацию о пользователе
`DELETE /users/{id}`: удалить пользователя
В этом примере мы видим, как REST-api позволяет нам взаимодействовать с ресурсами системы в стандартизированном и интуитивном виде.
В заключение, основные принципы REST-api – ресурсо-ориентированный подход, идемпотентность, безопасность, кэширование и безсостояночность позволяют создавать масштабируемые отказоустойчивые системы. следующей главе мы рассмотрим, как реализовать на практике.
2.3. HTTP-методы и статусы
Когда мы начинаем строить наше REST-api, нам необходимо понимать, как взаимодействовать с ресурсами на сервере. Для этого используем HTTP-методы и статусы. В этой главе рассмотрим основные статусы, которые используются в REST-api.
HTTP-методы
HTTP-методы – это способ указать серверу, какое действие необходимо выполнить с ресурсом. Существует несколько основных HTTP-методов:
GET: Получить ресурс. Этот метод используется для получения информации о ресурсе.
POST: Создать ресурс. Этот метод используется для создания нового ресурса на сервере.
PUT: Обновить ресурс. Этот метод используется для обновления существующего ресурса на сервере.
DELETE: Удалить ресурс. Этот метод используется для удаления ресурса с сервера.
PATCH: Частично обновить ресурс. Этот метод используется для частичного обновления существующего ресурса на сервере.
Каждый из этих методов имеет свое предназначение и используется в зависимости от того, что мы хотим сделать с ресурсом.
HTTP-статусы
HTTP-статусы – это способ указать клиенту, как прошел запрос. Существует несколько основных категорий HTTP-статусов:
1xx: Информационные статусы. Эти статусы используются для предоставления информации о процессе обработки запроса.
2xx: Успешные статусы. Эти статусы используются для указания, что запрос был успешно обработан.
3xx: Статусы перенаправления. Эти статусы используются для перенаправления клиента на другой URL.
4xx: Статусы ошибок клиента. Эти статусы используются для указания, что клиент сделал ошибку в запросе.
5xx: Статусы ошибок сервера. Эти статусы используются для указания, что сервер сделал ошибку при обработке запроса.
Некоторые из наиболее часто используемых HTTP-статусов включают:
200 OK: Запрос был успешно обработан.
404 Not Found: Ресурс не найден.
500 Internal Server Error: Сервер сделал ошибку при обработке запроса.
Примеры использования HTTP-методов и статусов
Давайте рассмотрим пример использования HTTP-методов и статусов. Предположим, у нас есть REST-api для управления пользователями. Мы хотим получить информацию о пользователе с идентификатором 1.
Мы отправляем GET-запрос на URL `/users/1`.
Сервер обрабатывает запрос и возвращает HTTP-статус 200 OK информацию о пользователе.
Теперь давайте рассмотрим пример создания нового пользователя.