Этот вопрос является продолжением моего предыдущего вопроса здесь: «Является ли этот веб-сервис Restfull» попыткой лучше понять концепцию веб-службы Rest. Я прочитал почти все, что нужно прочитать о Rest, но я не могу понять, является ли какой-то веб-сервис Rest или нет, или почему его нет. То, как я вижу это, все есть и не остается Отдых в зависимости от точки зрения …
Я прочитал в очень интересной статье что-то, что, наконец, может помочь мне понять, что такое «Отдых». Я читал, что Rest не использует физические URL-адреса, но логические.
Я помню, как только я разрабатывал приложение iOS, где нам приходилось регистрировать / подписывать пользователя и т. Д., И мне сказали сделать определенный HTTP-запрос Post на наш сервер URL-адрес, который выглядит так: www.myServer/devices/device/register
, В теле этого запроса у меня была вся информация в формате json, которая нужна серверу. К тому времени сервер для меня был черным ящиком, поэтому я даже не волновался, что означала эта ссылка и как она была создана. Но я знал, что это служба веб-отдыха.
В этом месяце я начал разрабатывать мобильное гибридное приложение, в котором я начал разрабатывать собственный код + jquery mobile для внешнего интерфейса и php + mysql для задней части. У меня более или менее такой же сценарий здесь, где пользователь должен подписаться на мероприятие или нет. Когда он нажимает кнопку, чтобы подписаться на конкретное событие, я делаю запрос на отправку http с помощью ajax-вызова и json-файла в теле, на конкретный скрипт php и этот сценарий соответственно записывает / обновляет / удаляет в базе данных.
Вызов выглядит примерно так:
$.ajax({ type: "POST", url: "http://192.168.4.113/Server_CityInfo/subscribe.php", data: data, contentType: "application/json; charset=utf-8", //dataType: "json", success: function(response) { $.mobile.changePage( "dialog.html", { role: "dialog" } ); }, error: function(xhr, status, message) { alert("Status: " + status + "\nMessage: " + message); } });
Как вы видите, я использую физический url, чтобы указать на мой скрипт PHP, чтобы принять это действие. Даже страница html, на которой находится пользователь, является физической страницей! Является такой страницей, как myUrl.com/eventX.
Означает ли это, что эта веб-служба, которую я создаю, не является частью Rest?
Как они в прошлом году указали мне на логические URL-адреса, и я могу указать только на физические php-скрипты? Я знаю, что их сервер был в java, возможно, поэтому URL-адреса не выглядят физически?
И в конце дня, скажем, у меня есть 100 различных событий, на которые пользователь может подписаться. Конечно, я бы не сделал 100 статических html-страниц. НО я бы сделал 1 html страницу, которая будет динамически генерироваться. Но все же ссылка на эту страницу будет такой же физической, как mySite.com/event.html
. Единственный способ, которым я знаю, чтобы URL-адрес выглядел логичным, – это когда у вас есть файл index.html внутри папки, и вы указываете на эту папку, чтобы URL-адрес выглядел как myWebsite.com/myFolder
.
Итак, вопрос здесь в том, как построить логический url и является ли это тем, что делает сервис Restfull?
Еще одна вещь, которую я читаю, – это то, что Rest использует URL-адреса, описывающие ресурсы, а не операции !. Опять же, хотя я не понимаю. Для всех в моем веб-сервисе я использую Post Request. Я хочу, например, подписаться на событие, я делаю почтовый запрос на url my.server.com/subscribe.php
и в теле этого запроса у меня есть json-файл с id
пользователя и event name
.
Когда я хочу зарегистрировать пользователя, я делаю почтовый запрос на url my.server.com/register.php
и json в теле с id
пользователя.
Является ли этот сценарий «Отдых», а если нет, то чего нет?
Я попытаюсь объяснить REST, насколько я понимаю.
RESTfull webservices основаны на двух факторах:
МЕТОДЫ – метод определяет операцию, выполняемую по URL-адресу. подобно
GET
– Получить ресурс PUT
– Вставить запись POST
– обновление записи DELETE
– удаление записи. Есть способы достижения спокойных URL-адресов с использованием PHP, см. Ответ здесь