Шпаргалка - REST
REST (Representational State Transfer) представляет собой архитектурный стиль взаимодействия компонентов в сети. В контексте веб-сервисов REST использует стандартные HTTP-методы для управления данными через API. Вот основные HTTP-методы, используемые в RESTful сервисах, и их назначение:
-
GET: Используется для извлечения данных с сервера. GET-запросы должны быть идемпотентными, то есть не должны изменять состояние сервера. Их можно выполнять многократно без риска изменения данных или их поведения.
-
POST: Применяется для создания нового ресурса на сервере. POST-запросы не идемпотентны, что означает, что повторение одного и того же POST-запроса обычно приводит к созданию новых ресурсов.
-
PUT: Используется для обновления существующего ресурса или создания нового, если он отсутствует, на основе предоставленного URI. PUT-запросы должны быть идемпотентными, так что повторный запрос с теми же данными должен давать тот же результат.
-
DELETE: Применяется для удаления существующего ресурса по указанному URI. DELETE-запросы также должны быть идемпотентными, и повторное выполнение запроса должно подтверждать удаление ресурса, но не приводить к дополнительным изменениям.
-
PATCH: Используется для частичного обновления ресурса. В отличие от PUT, который обычно требует отправки полного набора данных ресурса, PATCH применяется для отправки только изменений. PATCH-запросы не обязательно идемпотентны.
-
HEAD: Аналогичен GET, но сервер возвращает только заголовки ответа без тела сообщения. Это полезно, например, для извлечения метаданных о ресурсе без загрузки самого ресурса.
-
OPTIONS: Используется для описания параметров связи с ресурсом. С его помощью клиент может узнать, какие HTTP-методы поддерживаются для ресурса. Это может быть использовано для проверки возможностей веб-сервера или для проверки наличия функций, таких как CORS (Cross-Origin Resource Sharing).
Эти методы соответствуют операциям CRUD (Create, Read, Update, Delete), которые являются основой для управления данными. RESTful API, правильно использующий эти методы, может предоставить интуитивно понятный и мощный интерфейс для взаимодействия с ресурсами на сервере.
В Laravel, когда вы генерируете контроллер ресурса с помощью консольной команды artisan, создается контроллер с несколькими методами, каждый из которых соответствует определённой операции CRUD:
-
index для отображения списка ресурсов
-
create для возвращения формы создания нового ресурса
-
store для сохранения нового ресурса в базе данных
-
show для отображения определенного ресурса
-
edit для возвращения формы редактирования существующего ресурса
-
update для обновления ресурса в базе данных
-
destroy для удаления ресурса
Метод store обычно принимает данные из HTTP-запроса POST, обрабатывает их (например, проводит валидацию), и если данные корректны, создает новый ресурс в базе данных. Вот пример того, как может выглядеть метод store в контроллере ресурса:
public function store(Request $request)
{
// Валидация входящих данных
$validatedData = $request->validate([
'name' => 'required|max:255',
// другие поля для валидации
]);
// Создание нового ресурса
$resource = new Resource($validatedData);
$resource->save();
// Перенаправление на страницу с ресурсами или вывод сообщения об успехе
return redirect()->route('resources.index')->with('success', 'Resource created successfully!');
}
Этот метод store соответствует действию "Create" в CRUD и обычно вызывается в ответ на POST запрос на соответствующий URI.
Просто список:
public function get(){}
public function post(){}
public function put(){}
public function delete(){}
public function patch(){}
public function head(){}
public function options(){}