Урок 10. MVC, HTTP-запросы и REST


Этот урок из учебника по Laravel мы посвятим теории – познакомимся с MVC и REST.

При изучении Laravel вам необходимо иметь представление о структуре приложений Model–View–Controller (MVC), а также многие примеры, которые мы рассмотрим, используют имена маршрутов REST-ish и методы, поэтому давайте быстро рассмотрим и то, и другое.

Что такое MVC?

В MVC у вас есть три основных понятия:

  • Модель. Представляет собой отдельную таблицу базы данных (или запись из этой таблицы) — например, “компания” или “собака".
  • Представление. Представляет собой шаблон, который выводит ваши данные конечному пользователю – например, "шаблон страницы входа в систему с этим заданным набором HTML, CSS и JavaScript.”
  • Контроллер. Как и гаишник, он принимает HTTP-запросы из браузера, получает нужные данные из базы данных и других механизмов хранения, проверяет вводимые пользователем данные и в конечном итоге отправляет ответ обратно пользователю.


На рисунке выше видно, что конечный пользователь сначала взаимодействует с контроллером, отправляя HTTP-запрос через свой браузер. Контроллер в ответ на этот запрос может записывать данные в модель (базу данных) и/или извлекать их из нее. Затем контроллер, скорее всего, отправит данные в представление, а затем представление будет возвращено конечному пользователю для отображения в его браузере.

Мы рассмотрим некоторые варианты использования Laravel, которые не соответствуют этому относительно упрощенному взгляду на архитектуру приложений, поэтому не зацикливайтесь на MVC, но это, по крайней мере, подготовит вас к тому, чтобы подойти к остальной части этой главы, когда мы будем говорить о представлениях и контроллерах.

Методы HTTP

Самый распространенный http-команды Get и POST, затем по put и delete. Есть также HEAD, OPTIONS и PATCH, а также два других, которые практически никогда не используются в обычной веб-разработке, TRACE и CONNECT.

Вот краткое изложение:

  • GET - Запросить ресурс (или список ресурсов).
  • HEAD – получить заголовки ответа
  • POST - Создать ресурс.
  • PUT - Перезаписать ресурс.
  • PATCH - Изменение ресурса.
  • DELETE- Удаление ресурса.
  • OPTIONS - Задать сервер, на котором команды допускаются на этот URL.
В таблице ниже показаны действия, доступные на контроллере ресурсов. Каждое действие предполагает, что вы вызываете определенный шаблон URL-адреса с помощью определенного метода, поэтому вы можете получить представление о том, для чего используется каждый метод.



Что такое REST?

Говоря кратко, REST - это архитектурный стиль построения API. Когда мы говорим о REST на уроках по Laravel, мы в основном будем ссылаться на некоторые характеристики, такие как:

  • Быть структурированным вокруг одного основного ресурса за раз (например, задачи)
  • Состоит из взаимодействий с предсказуемыми структурами URL-адресов с использованием HTTP-методов (как показано в таблице)
  • Возврат JSON и часто запрашивается с помощью JSON
Это еще не все, но обычно “RESTful”, как он будет использоваться, будет означать “по образцу этих структур на основе URL-адресов, чтобы мы могли делать предсказуемые вызовы, такие как GET /tasks/14/edit для страницы редактирования.” Это актуально (даже если вы не строите API), потому что структуры маршрутизации Laravel основаны на REST-подобной структуре, как вы можете видеть в таблице/

API на основе REST в основном следуют той же структуре, за исключением того, что у них нет маршрута создания или маршрута редактирования, поскольку API просто представляют действия, а не страницы, которые готовятся к этим действиям.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, уроки по Laravel, MVC, php




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




C#: объединение текстовых файлов с одинаковыми именами из разных папок
История одной и решение любой проблемы с сайтом
Реализация недвоичных деревьев