Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
на сервере MVC может быть только если у нас пользовательский интерфейс полностью реализован на сервере, т.е. нет браузерного кода, интерфейс генерируется на сервере, а браузер просто показывает его.V будет, но мнимая. Должен же кто-то словари и массивы отрисовать в JSON ;)
Так что, уберите слово REST, вводящее в заблуждение, делайте API и все.
методы CRUD не могут быть частью модели объекта реального мира, потому, что ни один реальный объект не умеет себя создавать или удалять
почему вы не можете допустить, что модель (представляющая из себя реальную запись в БД) не может сама себя сохранять, удалять, изменять?
Если это удобно и позволяет инкапсулировать процесс взаимодействия с БД, то почему этого не должно быть с вашей точки зрения?
Причём популярные библотеки/фреймворки/паттерны типа ActiveRecord как раз не инкапсулируют персистентность — методы типа save() вызываются извне.
@post = Post.new(title: 'whatever', text: 'whatever')
@post.save!
весь смысл REST в том, что он оперирует файлами, каждый из которых имеет свой уникальный URL и над этим файлом можно производить только HTTP методы: GET, PUT, POST, DELETE
А это уже совсем не REST, например, Хабр выдает по адресу habrahabr.ru/tracker/ разный список для каждого из нас и такое повсеместно
STATEful — это великолепная возможность писать быстрые приложения, и даже не из-за того, что Event Loop фреймворки предполагают неблокирующий ввод/вывод, а из-за правильного использования памяти. Большинство операций ввода-вывода не нужно даже делать в во время обработки запросов, чтение можно делать упреждающими и параллельным, а запись ленивой (lazy). Разворачивайте данные в память приложения, стройте хеши, объекты, массивы, которые проживут долгую и счастливую жизнь в STATEful процессе.
Зачем?
/form/2?is_18=trueЕсли у вас есть 3ех этапная форма, при заполнении которой нужно вызывать процедуры на сервере и при этом вы не закрепляете выполнение этих процедур за пользователем, а за сессией, у ваш протокол логически stateful.
В любом языке такое всегда можно было.
PUT /int
Authorization: haxk0r:super
1337
204 No Content
GET /int
200 FOUND
Content-Length: 4
1337
Состояние чего?
Это что stateful по вашему да?
А с этими терминологиями столько копий переломано впустую, какая нафик разница, как это называется? Важно лишь, что именно оно делает и как помогает. И помогает ли вообще. Ниже хорошо написали.
что именно оно делает и как помогает, и помогает ли вообще
что именно оно делает и как помогает. И помогает ли вообще
Назад, к технологиям верхнего палеолита, от любимых всеми REST, STATEless, CRUD, CGI, FastСGI и MVC