ОТДЫХ для слабаков. Просто нужно кодировать, кодировать, кодировать до поздней ночи, верно?
Нет, REST (Representation State Transfer) — это стандарт программирования, используемый во многих языках для организации «маршрутов» и обеспечения их повторного использования.
Система RESTful не имеет состояния и разделяет задачи клиента и сервера — codecademy
Это гарантирует, что определенные методы HTTP (GET, POST, PATCH, DELETE) связаны с определенными действиями CRUD (создание, чтение, обновление, уничтожение). Это упрощает понимание приложения и кода и создает согласованные пути URL для пользователей.
Клиент и сервер
Клиент — это компьютер, который подключается и использует ресурсы удаленного компьютера или сервера — Компьютерная Надежда
Это может быть все внутреннее на частном сервере, например, в корпоративной среде или в локальной сети.
Или, в более распространенном случае простого «просмотра» Интернета, люди используют свой клиент (он же персональный компьютер) для ввода URL-адреса, который выходит во всемирную сеть серверов, чтобы найти файлы и информацию, запрошенные для возврата. клиент.
Клиент также может относиться к программе, используемой для подключения к серверу или другому программному обеспечению по сети, например к веб-браузеру, такому как Chrome или Safari. Другими примерами клиентов являются приложения и виджеты на наших смартфонах.
Просто просмотрите программы, установленные на вашем компьютере, и подумайте о тех, которые подключаются к серверу и/или работают через Интернет. Для меня я вижу почтовый клиент, HP Smart (принтер), Zoom, DropBox, Google Chrome и Anki. Может быть, VS Code, мой программный текстовый редактор, можно считать клиентом, поскольку я настроил его для связи с серверами GitHub? Я не совсем уверен.
Многие автономные клиентские программы имеют веб-аналоги. Несколько преимуществ, которые я вижу в локально установленных клиентах по сравнению с приложениями веб-браузера, — это возможность использования без подключения к сети и более легкий доступ к ресурсам на устройстве, таким как файлы, изображения, микрофон, камера и т. д.
Сервер — это программное или аппаратное устройство, которое принимает и отвечает на запросы, сделанные по сети — Компьютерная Надежда
Наиболее распространенный сценарий сервера — получение запросов на веб-файлы от клиентов.
В системе RESTful клиент и сервер могут функционировать независимо до такой степени, что изменения кода на одной стороне не влияют на работу другой стороны. Такое разделение задач повышает гибкость и масштабируемость базы кода.
Используя интерфейс REST, разные клиенты достигают одних и тех же конечных точек REST, выполняют одни и те же действия и получают одни и те же ответы. — кодакадемия
Государство и безгражданство
Я впервые обнаружил концепцию «состояния» в React, где данные могут храниться в одном компоненте, передаваться по программе и изменяться. Этими данными могут быть имена, числа, массивы, объекты, вызовы функций, переменные, константы и т. д. Какие бы данные ни были в вашей программе, когда вы на нее смотрите, это ее «состояние».
Я также помню времена, когда мои функции не устанавливали/сбрасывали состояние должным образом, и поэтому я не получал правильных возвращаемых данных, которые хотел (если вообще какие-либо данные возвращались). Да, если он не был сохранен в состоянии, то данные просто забыты и недоступны. Веселые времена, отлаживающие их и обнаруживающие, куда делось состояние!
Системы RESTful не имеют состояния, «это означает, что серверу не нужно ничего знать о том, в каком состоянии находится клиент, и наоборот». — Кодакадемия
Данные не нужно хранить в памяти. Предыдущий запрос или операция не влияют на будущие вычисления. Возможность повторного использования системы без сохранения состояния позволяет повторять действия для получения надежных ответов.
Структура Model-View-Controller (MVC)
Разделяет приложение на 3 компонента:
Модель — здесь хранится логика объекта, например, какие атрибуты будет иметь каждая итерация.
View — то, что представлено пользователю или клиенту; также могут быть интерактивными формами
Контроллер — интерфейс между Представлением и Моделью; обрабатывает взаимодействие с пользователем, которое может обновлять состояние в модели или изменять данные в представлении
Это не подробное объяснение MVC. Просто хотел упомянуть об этом, поскольку это может быть полезно для понимания в зависимости от того, как вы хотите кодировать. Изучение Ruby on Rails помогло мне понять MVC.
Действия CRUD
Это 4 основных типа действий, которые должна использовать модель в MVC. Или вообще любая программа/приложение должна уметь это делать.
Создать — создает новый объект на сервере
Чтение — отображение списка всех объектов или отображение сведений об 1 конкретном объекте.
Обновить — обновляет конкретный объект на сервере и/или в базе данных.
Уничтожить — удаляет определенный объект
Это удобная аббревиатура, чтобы напомнить всем разработчикам о необходимости включать их в свою работу.
Глаголы HTTP
В клиентских запросах используются 4 HTTP-глагола.
(ресурс, также известный как модель из фреймворков MVC).
GET — получить конкретный ресурс (по id) или набор ресурсов
POST — создать новый ресурс
PATCH или PUT — обновить конкретный ресурс (по id)
DELETE — удалить определенный ресурс по id
*PATCH и PUT являются синонимами, поэтому любой из них может использоваться и будет работать одинаково
*и да, эти HTTP-глаголы должны быть выделены жирным шрифтом
Маршруты
Существует 7 маршрутов, каждый из которых связан с 1 из 4 действий CRUD и, следовательно, использует 1 из 4 глаголов/методов HTTP. В таблице ниже показаны все они с шаблоном их URL-пути.
* если ваше приложение использует объекты «Пицца» 🍕, замените «объект» на «пицца»
* Внимание, можно создавать собственные маршруты, но я не буду вдаваться в подробности в этом блоге.
Эти 7 имен маршрутов также будут напрямую связаны с методом маршрута, который он вызывает в контроллере.
Ах! Старые добрые, надежные, предсказуемые и простые в использовании соглашения об именах!
Заключение
Позвольте мне попытаться провести вас через поток всего этого теперь, когда у нас есть клиент и сервер, MVC, 4 действия CRUD, 4 глагола/метода HTTP и 7 маршрутов.
1/ Модель/Ресурс — «Пицца». 🍕
2/ Чтобы получить сведения о конкретном ресурсе для отображения в представлении клиента, мы будем использовать маршрут «Показать».
3/ Если вы используете инфраструктуру MVC, «Show» также будет названием метода, который вы будете использовать для определения того, что и как будет отображаться.
4/ «Показать» — это действие «Чтение» из CRUD.
5/ При получении сведений используется HTTP-метод GET.
6/Допустим, нам нужна информация о пицце с идентификатором 1 в базе данных/сервере.
7/ Путь URL будет примерно таким: pizzawebsite.com/pizza/1
Эти соглашения об именах маршрутизации RESTful позволяют всему работать в гармонии. Этот процесс можно повторить, чтобы получить другие пиццы с другими идентификаторами.
Другие источники
Что такое государство? - Определение из Techopedia
В информатике состояние программы определяется как ее состояние относительно сохраненных входных данных. Термин «состояние здесь…www.techopedia.com»