Даже если я предлагаю альтернативы PUT и DELETE (cf «Low REST»), как я могу предоставить удобную для пользователя проверку формы для пользователей, которые обращаются к моему веб-сервису из браузера, в то же время подвергая RESTful URI? Проблема проверки формы (описанная ниже) - это мое текущее quandry, но более широкий вопрос, который я хочу задать, заключается в следующем: если я пойду по пути, чтобы предоставить как открытый интерфейс RESTful , так и интерфейс HTML без javascript, это собирается ли жизнь легче или тяжелее? Они вообще играют вместе?HTML-интерфейс для веб-службы RESTful * без * javascript
Теоретически это должно быть просто вопросом изменения формата вывода. Машина может запросить URL «/ people» и получить список людей в XML. Пользователь может указывать свой браузер на один и тот же URL-адрес и вместо этого получать хороший ответ HTML. (Я использую URL examples from the microformats wiki, которые кажутся довольно разумными).
Создание ресурса нового человека выполняется с запросом POST на URL «/ people». Чтобы достичь этого, пользователь может сначала посетить «/ people/new», который возвращает статическую HTML-форму для создания ресурса. Форма имеет метод = POST и action = "/ people". Это будет работать нормально, если вход пользователя действителен, но что делать, если мы выполняем проверку на стороне сервера и обнаруживаем ошибку? Дружелюбным было бы вернуть форму, заполненную данными, которые только что введенный пользователь, плюс сообщение об ошибке, чтобы они могли исправить проблему и повторно отправить ее. Но мы не можем вернуть этот вывод непосредственно из POST в «/ people» или он нарушает нашу систему URL-адресов, и если мы перенаправляем пользователя обратно в форму «/ people/new», тогда нет способа сообщить об ошибке и повторно заполнить форму (если мы не сохраним данные в состояние сеанса, что будет еще меньше RESTful).
С javascript все будет намного проще. Просто выполните POST в фоновом режиме, и если он не удался, отобразите ошибку в верхней части формы. Но я хочу, чтобы приложение грамотно деградировало, когда поддержка javascript недоступна. На данный момент я пришел к выводу, что нетривиальное веб-приложение не может реализовать интерфейс HTML без javascript, и использовать обычную схему URL-адресов RESTful (например, описанную в викторике микроформатов). Если я ошибаюсь, скажите мне об этом!
Похожие вопросы на переполнение стека (ни один из которых имеют дело с проверкой формы):
@Todd нет такой вещи, как «Низкий REST» - именно так вы знаете, REST позволяет обойти стандарты протокола, если это необходимо из-за неправильных реализаций клиента, то есть HTML4 поддерживает только POST/GET. – aehlke