Как мне создать RESTful URL для проверки объекта - PullRequest
9 голосов
/ 03 декабря 2011

Не отходя от парадигмы RESTful, как вы могли бы моделировать валидацию объекта RESTful?Лучше всего объяснить теоретический пример использования, который я придумала ...

Представьте, что у вас есть система с очень тонким веб-слоем, выполняющая вызовы к внутренним сервисам RESTful.Скажем, пользователь посетил форму регистрации и отправил ее, веб-слой отправит непроверенные данные прямо в серверную службу, и, если служба ответит ошибками проверки в формате JSON, они могут быть отправлены обратно пользователю в виде HTML.

Однако представьте, что мы хотим иметь поведение AJAX в форме.Например, пользователь вводит свой адрес электронной почты, и мы хотим проверить его с помощью AJAX, отправив пользователю сообщение об ошибке, если его адрес электронной почты уже зарегистрирован.

Имеет ли смысл реализовать один вызов для проверки толькоадрес электронной почты или весь объект может быть отправлен и проверен в бэкэнд-сервисе?Если последнее, какой URL-адрес вы могли бы использовать только для проверки объекта, а не для его создания?

Ответы [ 2 ]

2 голосов
/ 05 декабря 2011

В прошлом я использовал понятие подресурса песочницы, чтобы делать то, что вы предлагаете,

http://example.com/customer/23/sandbox

Это позволяет мне отправлять дельты POST и применять и проверять изменения, но фактически не фиксировать,Это очень хорошо работает для традиционных диалогов типа «сохранить / отменить».

Однако мне показалось, что работать с этими дельтами было очень больно, поэтому я разработал другой тип носителя, который записывал последовательность событий наклиент, а затем опубликовал этот документ в ресурс песочницы.Воспроизведя последовательность событий, я мог бы обновить и проверить ресурс на стороне сервера более простым способом.

Позже я понял, что мне действительно не нужен отдельный ресурс "песочница", и теперь я просто публикую "Последовательность событий »документ непосредственно на ресурс, на который он влияет.У меня есть некоторые данные в самом документе, которые определяют, будут ли изменения постоянными или просто временными.Это зависит только от того, нажал ли пользователь кнопку сохранения или нет.

0 голосов
/ 03 декабря 2011

Проверка одного поля формы может улучшить взаимодействие с пользователем, пока пользователь заполняет форму, но когда форма отправлена, я бы проверил весь объект, поскольку он менее подвержен ошибкам.URL может быть просто https://mysite.com/users/emailvalidator для проверки только электронной почты (одно поле), а форма может быть POST установлена ​​в https://mysite.com/users (весь объект).В первом случае URL ясно говорит о том, что ресурс, который вы хотите использовать, является объектом, который может проверять электронную почту.

...