Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте! Возник такой вопрос. Эта аббревиатура - собственно REST, когда-то пугала меня, но когда я посмотрел что это, то все стало на свои места(возможно понял частично). Ну то что я понял - это 4 http метода(get, post, put, delete) ну и возвращаемый тип данных. Современные браузеры вроде как не поддерживают все эти методы, для них основными есть get и post. Теперь ближе к вопросу. В Laravel я заметил реализацию этих 4 методов, но не понимаю зачем нужны put и delete и где их использовать раз нет поддержки браузерами???
Не в сети
Laravel поддерживает все HTTP методы с помощью «спуфера» — когда в форме используются нестандартные методы она передаётся методом POST, плюс добавляется скрытый параметр, где передаётся имя «настоящего» HTTP-метода. При приёме такой формы Laravel автоматически подставляет нужный метод и таким образом обеспечивает прозрачную работу RESTful.
Не в сети
Не в сети
- это вроде как создание своего API?
REST можно использовать и так. Основная идея в том, что используя разные HTTP-методы можно уменьшить число переменных в URL.
Например, скрипт удаления комментария может открываться по адресу /comments.php?action=delete&id=ID или comments/delete/ID — при этом не имеет значения, используется GET, PUT или любой другой запрос. С помощью REST можно сделать, что один и тот же URL, например, /comments/, будет одновременно выполнять разные действия в зависимости от HTTP-метода — таким образом сделав DELETE /comments/ID мы удалим комментарий, сделав PUT /comments/ — добавим новый/отредактируем старый, GET /comments/ID — прочитаем существующий и т.п.
Без использования REST нам бы пришлось запрашивать /comments/delete/ID/, /comments/edit/ID/, /comments/show/ID/ и т.п.
Собственно, разница только в этом. Лично я стараюсь этим не баловаться (тем более когда речь идёт об API), потому что наверняка найдутся случаи, когда кроме GET и/или POST клиент не сможет ничего использовать (или это будет связано с танцами с бубном). Зачем усложнять ему жизнь?
Не в сети
Не в сети