ОТДЫХ для слабаков. Просто нужно кодировать, кодировать, кодировать до поздней ночи, верно?

Нет, 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 позволяют всему работать в гармонии. Этот процесс можно повторить, чтобы получить другие пиццы с другими идентификаторами.

Другие источники