Я прочитал много Успокоительных учебных руководств для PHP.
(Я не хочу идти подробно в то, почему я не использую RoR. Это происходит из-за команды, являющейся более знакомым с PHP),
Поскольку мы планируем будущее расширение в наличие API, я считал, что важно реализовать Успокоительные веб-сервисы.
Я посмотрел на учебные руководства такой как
http://www.gen-x-design.com/archives/create-a-rest-api-with-php/
По-видимому успокоительный предназначен для веб-сервисов.
Что относительно для веб-страниц? они могут быть УСПОКОИТЕЛЬНЫМИ также?
если ответ нет, не идите вне этой строки И просто говорите мне.Спасибо.
я знаю, чтобы заставить URL быть похожими на УСПОКОИТЕЛЬНЫЕ URL, должен просто использовать mod_rewrite. Однако я совершенно уверен, архитектура RESTful идет вне просто того, чтобы заставлять URL выглядеть хорошей.
Для, например, у меня есть список объектов на веб-странице, названной list.php. Каждый объект имеет удалить ссылку рядом с ним. Например, list.php? id=1&deleteitem
То, что происходит, является этим, когда кто-то нажимает на list.php? ссылка id=1&deleteitem, конечно, я возвращаюсь к тому же list.php файлу и проверке на параметрический усилитель deleteitem в $ _GET.
Если обнаружено, я затем удалю из базы данных на основе идентификатора параметрического усилителя в $ _GET.
После которого я перенаправлю назад к list.php БЕЗ любых параметрических усилителей.
Я задаюсь вопросом, как я делаю этот целый поток УСПОКОИТЕЛЬНЫМ?
Я спрашиваю, потому что в REST, для создания удаляют что-то, что необходимо использовать метод Запроса HTTP (УДАЛЯЮТ).
Очевидно в моих ссылках они - все просто Delete
Просветите меня.
Мое программирование не настолько сильно, и было бы хорошо, если данный совет может быть как неспециалист как возможный.
Спасибо.
Править
Я имею 2, развивают вопросы.
вопрос 1), Так как это - список объектов с подкачкой страниц, как URL был бы похож, если я хочу сделать это УСПОКОИТЕЛЬНЫМ?
вопрос 2), Так как я помещаю, УДАЛЯЕТ ссылки рядом с каждыми из объектов в списке, я понимаю теперь, я должен использовать
вместо этого.
однако форма должна быть отправлена туда, где? URL объекта?/items/{идентификатор объекта}
Но я хочу вернуться к этой странице списка, отображающей сообщение успеха ПОСЛЕ успешного удаления строки в базе данных.
Я также хочу избежать всплывающего сообщения, когда я обновляю эту страницу списка с сообщением успеха.
Если я отправляю назад на этот list.php URL, то это не УСПОКОИТЕЛЬНО да? потому что мне говорят ответы, ниже которых каждый объект является ресурсом, которому нужен его собственный URL.
Просветите меня.Спасибо.
RESTful обычно используется при обращении к веб-службам, но вполне может применяться к веб-страницам. Короче говоря, RESTful - это работа с ресурсами. Ресурсом может быть человек, книга, фильм, театр, билет или что угодно.
Есть четыре основных операции, которые вы можете выполнить с ресурсом.
Большинство веб-браузеров не поддерживают PUT
и DELETE
действия, поэтому вы можете использовать только действия POST для отправки данных. Rails подделывает PUT и DELETE, передавая скрытый параметр с именем _method
, который фреймворк подбирает и направляет в зависимости от этого значения.
Кроме того, вы никогда не должны использовать GET
для каких-либо деструктивных действий. Любое действие, которое изменяет состояние ваших ресурсов, должно вызываться либо с помощью POST
, PUT
, либо DELETE
в зависимости от изменения (поддельный PUT / УДАЛИТЬ с помощью POST, если необходимо).
Я бы посоветовал вам проверить, как RESTful-маршрутизация обрабатывается в Rails, просто чтобы получить представление, если ничего другого. Хотя четырех действий выше достаточно для изменения ресурса любым возможным способом, Rails также представляет три других типа действий, которые кажутся полезными.
Красивые URL-адреса, безусловно, используются при разработке сайтов RESTful, но, вероятно, самым большим преимуществом является то, что качество кода улучшается автоматически. Когда вы имеете дело только с ресурсами, и есть только четыре возможных действия, которые можно применить к ресурсу, тогда все начинает очищаться само по себе.
Редактировать 1 : Самоописательные URL-адреса предпочтительны и облегчат вашу жизнь, но ничто не мешает создавать загадочные URL-адреса, которые однозначно идентифицируют ресурс и управляют им с помощью HTTP-глаголов. URL-адреса, подобные приведенным ниже (с использованием md5) для уникальной идентификации ресурсов, идеально подходят для RESTful.
// represents a person "John Doe"
http://example.com/4c2a904bafba06591225113ad17b5cec
// represents the movie "Lord of the Rings: The Two Towers"
http://example.com/1d9198260dec7bda3fb21e232d60fec3
// represents the "Formula One" sport
http://example.com/fs340as?id=23xa12&type=SP012Ts
Это REpresentational State Transfer прямо здесь. Хеш MD5 подобен почтовому адресу ресурса, который остается постоянным. Представлением могут быть детали фильма (в html / xml / json / и т. Д.) Или, возможно, видео самого фильма в зависимости от возможностей клиента).
Редактировать 2 :
Допустим, у вас есть ресурс, который представляет собой коллекцию - стран
мира.
Он может быть представлен URI и HTTP глагол, например:
GET /countries
Поскольку разбиение на страницы - это свойство приложения, а не сам ресурс, вы можете предоставить параметры строки запроса для управления им.
GET /countries?page=1
Страна также является ресурсом, который является частью ресурса стран.Вы можете определить страну с помощью URL-адреса, например:
/countries/<id>
И операции с этой страной могут быть выполнены с помощью следующих глаголов:
GET /countries/<id>
POST /countries -- the new country has no existing representation
PUT /countries/<id>
DELETE /countries/<id>
Спокойный подход, безусловно, можно использовать и на веб-страницах. Ввод команд в URL-адрес - не лучшая идея из-за упомянутых вами побочных эффектов. Когда вы меняете базу данных (или делаете что-то, что меняет модель), используйте команды POST.
Конечно, у вас нет PUT и DELTE в основных веб-браузерах, но вы всегда можете отправить простой POST с определенным параметром, например method
= "PUT", method
= "УДАЛИТЬ" и т. Д.
Длинный ответ, краткий: да. ОТДЫХ предназначен для обоих. Это потому, что даже если у вас самый простой из всех веб-сайтов, вам все равно придется ПОЛУЧИТЬ свою страницу и, возможно, отправить свои личные данные, чтобы добавить запись в гостевую книгу. В этом мы все так или иначе придерживаемся REST.
В вашем случае плохая реализация браузера затрудняет реализацию PURE RESTful. DELETE не поддерживается без Javascript, и поэтому вам все равно придется использовать GET или POST (которые имеют совершенно другое значение, чем DELETE в REST).
Я написал крошечный фреймворк поверх Zend Framework, чтобы упростить реализацию интерфейсов RESTful:
http://github.com/mikekelly/ Resauce
Вы можете использовать это для веб-сервисов и веб-сайтов. По сути, веб-сайт - это просто веб-сервис, управляемый HTML.
RESTful означает не "красивые URI". Несмотря на то, что URI идентифицируют ресурс, единственное, что REST говорит о URI, это то, что они не должны содержать параметр действия типа "delete".
В вашем случае вы бы вызвали
DELETE /items/6793
Ответом обычно будет код состояния 200 OK
с измененным списком в качестве тела сообщения. См: http://restpatterns.org/HTTP_Methods/DELETE
Поскольку HTML 4 не поддерживает другие действия с формой, кроме GET и POST, вы должны обойтись скрытым параметром и переопределить метод HTTP на стороне сервера.